FeiertageInJSON/main.py

73 lines
2.4 KiB
Python
Raw Normal View History

2024-05-03 10:08:34 +02:00
import csv
import json
2024-05-03 14:16:58 +02:00
from typing import Any
2024-05-03 14:24:06 +02:00
import pycountry
2024-05-03 10:08:34 +02:00
2024-05-03 14:16:58 +02:00
# 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_<Kennung>": name_kennenung,
}
)
2024-05-03 14:24:06 +02:00
country = pycountry.countries.get(alpha_2=splitetZeile[1])
2024-05-03 14:16:58 +02:00
data.append(
{
2024-05-03 14:24:06 +02:00
"country": country.name if country else splitetZeile[1],
2024-05-03 14:16:58 +02:00
"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()