diff --git a/etc/btwmeta-gen.py b/etc/btwmeta-gen.py new file mode 100644 index 0000000..fa85088 --- /dev/null +++ b/etc/btwmeta-gen.py @@ -0,0 +1,36 @@ +import tkinter.filedialog +import csv +import json +import xml.etree.ElementTree as ET + +# Die beiden hier geforderten Dateien fanden sich für das Ergebnis 2021 +# auf der Webseite der Bundeswahlleiterin unter: +# > Bundestagswahl 2021 > Ergebnisse > Open Data +# +# Die Parteienliste fand sich unter: +# Bereitgestellte Daten > Beschreibende Daten > btw21_parteien.csv +# +parties_csv = tkinter.filedialog.askopenfilename(title="btwNN_parteien.csv", filetypes=[("btwNN_parteien.csv", "*.csv")]) +if parties_csv == '': + exit(0) +# Die Ergebnisse fanden sich unter: +# Ergebnisdateien > Verzeichnis "date" > XML-Dateien > sitze_VV.xml +# https://www.bundeswahlleiterin.de/bundestagswahlen/2021/ergebnisse/opendata/btw21/20210926_hauptwahl/daten/sitze_05.xml +seats_xml = tkinter.filedialog.askopenfilename(title="sitze_x.xml", filetypes=[("sitze_NN.xml", "*.xml")]) +if seats_xml == '': + exit(0) + +with open(parties_csv, newline="", encoding = "utf-8-sig") as f: + reader = csv.DictReader(filter(lambda row: row[0]!='#', f), delimiter=";") + parties = list(filter(lambda x: x['Gruppenart_XML'] != 'EINZELBEWERBER', reader)) + +parties_dict = dict(map(lambda x: (x['Gruppenschluessel'], x['Gruppenname_kurz']), parties)) + +results_dict = {} + +tree = ET.parse(seats_xml) +bund = tree.find("Gebiet[@Gebietsart='BUND']") +for sitze in bund.iterfind("SitzeGruppe"): + gruppe = parties_dict[sitze.attrib['Gruppe']] + count = sitze.attrib['Gesamt'] + print(f'"{gruppe}": {count},') diff --git a/etc/btwmeta.json b/etc/btwmeta.json index df1e4b2..4882336 100644 --- a/etc/btwmeta.json +++ b/etc/btwmeta.json @@ -588,6 +588,55 @@ "Übrige": 0, "uri": "https://www.bundeswahlleiter.de/bundestagswahlen/2017/ergebnisse/bund-99.html" } + }, + { + "id": 20, + "date": "2021-09-26", + "seats": 736, + "party": { + "CDU": 152, + "SPD": 206, + "AfD": 83, + "FDP": 92, + "DIE LINKE": 39, + "GRÜNE": 118, + "CSU": 45, + "FREIE WÄHLER": 0, + "Die PARTEI": 0, + "Tierschutzpartei": 0, + "HEIMAT": 0, + "PIRATEN": 0, + "ÖDP": 0, + "V-Partei³": 0, + "DiB": 0, + "BP": 0, + "Tierschutzallianz": 0, + "MLPD": 0, + "Verjüngungsforschung": 0, + "MENSCHLICHE WELT": 0, + "DKP": 0, + "Die Grauen": 0, + "BüSo": 0, + "Die Humanisten": 0, + "Gartenpartei": 0, + "du.": 0, + "SGP": 0, + "dieBasis": 0, + "Bündnis C": 0, + "BÜRGERBEWEGUNG": 0, + "III. Weg": 0, + "BÜNDNIS21": 0, + "LIEBE": 0, + "Wir Bürger": 0, + "PdF": 0, + "LfK": 0, + "SSW": 1, + "Team Todenhöfer": 0, + "UNABHÄNGIGE": 0, + "Volt": 0, + "Übrige": 0, + "uri": "https://bundeswahlleiterin.de/bundestagswahlen/2021/ergebnisse/bund-99.html" + } } ] }