import csv import json import country_converter as coco #Id;Country;StartDate;EndDate;Type;Name;Subdivisions subdivsionsEncode = {} with open("subdivisions.csv", 'r', newline='') as csv_datei: csv_reader = csv.reader(csv_datei) for zeile in csv_reader: subdivsionsEncode[zeile[0].split(";")[1].split("-")[1]] = zeile[1].split(";")[1][3:] def generateFullSubdivisionNames(subdivisions): result = [] for element in subdivisions: result.append(subdivsionsEncode[element]) return result #subdivisions noch data = [] with open("holidays.public.csv", 'r', newline='') as csv_datei: csv_reader = csv.reader(csv_datei) for zeile in csv_reader: print(zeile) splitetZeile = zeile[0].split(";") subdivisions = [] if len(zeile) > 2: subdivisions = zeile[2:] if zeile[1].split(";")[1]: subdivisions.append(zeile[1].split(";")[1]) subdivisions = generateFullSubdivisionNames(subdivisions) metaData = [] name_kennenung = [] name_kennenung.append(splitetZeile[5].split(",")[0]) name_kennenung.append(zeile[1].split(";")[0]) metaData.append({"name_DE": splitetZeile[5].split(",")[0], "name_": name_kennenung}) data.append({"country": coco.convert(names=splitetZeile[1], to='name_short'), "country_code": splitetZeile[1], "start_date": splitetZeile[2], "end_data": splitetZeile[3] if splitetZeile[3] != '' else splitetZeile[2], "name": splitetZeile[5][3:], "meta_data": metaData, "subdivision": subdivisions}) for element in data: pass print(element) #in json speichern with open("holidays.public.json", 'w') as json_datei: json.dump(data, json_datei, indent=4, ensure_ascii=False)