def parse_vallokal(self, vl): #print("parse_vallokal") #print(vl) vallokal = NestedDict() with io.StringIO(vl, newline='') as vlf: reader = csv.reader(vlf, delimiter=':', skipinitialspace=True) for row in reader: #print(row) if len(row) <= 1: pass elif row[0] == 'L': #print("Found Län: {0}({1})".format(row[2], row[1])) vallokal[row[1]] = { 'type': 'L', 'id': (row[1],), 'name': row[2] } try: vallokal['l'].append(row[1]) except: vallokal['l'] = [] vallokal['l'].append(row[1]) #print("Saved län ") #self.pp.pprint(vallokal[row[1]]) #self.pp.pprint(vallokal['l']) elif row[0] == 'K': #print("Found Kommun: {0}({1})".format(row[4], row[1])) vallokal[row[1]] = \ { 'type': 'K', 'id': (row[2], row[3]), 'name': row[4] } try: vallokal['kl'][row[2]].append(row[3]) except: vallokal['kl'][row[2]] = [] vallokal['kl'][row[2]].append(row[3]) #print("Saved län ") #self.pp.pprint(vallokal[row[1]]) #self.pp.pprint(vallokal['kl'][row[2]]) elif row[0] == 'V': #print("Found Län: {0}({1})".format(row[5], row[1])) vallokal[row[1]] = \ { 'type': 'V', 'id': (row[2], row[3], row[4]), 'name': row[5] } try: vallokal['vk'][row[2]+row[3]].append(row[4]) except: vallokal['vk'][row[2]+row[3]] = [] vallokal['vk'][row[2]+row[3]].append(row[4]) #print("Saved län ") #self.pp.pprint(vallokal[row[1]]) #self.pp.pprint(vallokal['l']) else: pass return vallokal
def __init__(self, type): #self.pp = pprint.PrettyPrinter() resultXslt = "slutresultat.xslt" resultPath = Path('data/slutresultat') files = resultPath.glob('slutresultat_????' + type + '.xml') rXslt = etree.parse(resultXslt) rTransform = etree.XSLT(rXslt) self.resultdb = NestedDict() for f in files: #print('Parsing ', f) #print('-------------') rDom = etree.parse(str(f)) rTrans = str(rTransform(rDom)) #print(rTrans) #print('-------------') self.resultdb = self.parse_result(rTrans, self.resultdb)