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()
|