import csv import json from typing import Any import pycountry # Id;Country;StartDate;EndDate;Type;Name;Subdivisions def main() -> None: 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: list[str]) -> list[Any]: 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, } ) country = pycountry.countries.get(alpha_2=splitetZeile[1]) data.append( { "country": country.name if country else splitetZeile[1], "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) if __name__ == "__main__": main()