72 lines
2.7 KiB
Python
72 lines
2.7 KiB
Python
import glob, os
|
|
import csv
|
|
import json
|
|
from collections import defaultdict
|
|
os.chdir("C:\\Users\\milli\\Documents\\Datenbereinigung")
|
|
|
|
straftat_zuordnung = {
|
|
"------": "Straftaten insgesamt",
|
|
"000000": "Diebstahl insgesamt",
|
|
"000100": "Diebstahl von Kraftwagen insgesamt",
|
|
"000300": "Diebstahl von Fahrrädern insgesamt",
|
|
"026000": "Ladendiebstahl insgesamt",
|
|
"050000": "Diebstahl an/aus Kraftfahgrzeugen insgesamt",
|
|
"090000": "Taschendiebstahl insgesamt",
|
|
"210000": "Raub, räuberische Erpressung, räuberischer Angriff auf Kraftfahrer",
|
|
"217000": "Sonstige Raubüberfälle auf Straßen, Wegen oder Plätzen",
|
|
"220000": "Körperverletzung insgesamt",
|
|
"222000": "Gefährlich und schwere Körperverletzung",
|
|
"674000": "Sachbeschädigung",
|
|
"725000": "Straftaten gegen das Aufenthaltsgesetz, das Asylgesetz, das Freizügigkeitsgesetz/EU",
|
|
"730000": "Rauschgiftdelikte",
|
|
"731000": "Allgemeine Verstöße gem. § 29 BtMG -Konsumentendelikte-",
|
|
"732000": "Illegaler Handel mit/Schmuggel von Rauschgiften gem. § 29 BtMG",
|
|
"888000": "Wohnungseinbruchsdiebstahl gem. § 255 Abs. 1 Nr. 3 StGB",
|
|
"892000": "Gewaltkriminalität",
|
|
"999999": "Straftaten insgesamt nur Bezirke"
|
|
}
|
|
|
|
def cleanup_text(text):
|
|
result = text.replace('.', '')
|
|
result = result.replace(' ', '')
|
|
result = result.replace('-', '')
|
|
return result
|
|
|
|
def cleanup_int(text):
|
|
result = cleanup_text(text)
|
|
if result == "":
|
|
result = "0"
|
|
return int(result)
|
|
|
|
def cleanup_float(text):
|
|
result = cleanup_text(text)
|
|
result = result.replace('%', '')
|
|
result = result.replace(',', '.')
|
|
if result == "":
|
|
result = "0.0"
|
|
return float(result)
|
|
|
|
|
|
complete_data = defaultdict(lambda: defaultdict(lambda: defaultdict(dict)))
|
|
for file in glob.glob("*.csv"):
|
|
with open(file, encoding='utf-8') as csvfile:
|
|
csvreader = csv.reader(csvfile, delimiter=';')
|
|
next(csvreader, None)
|
|
delikt_code = file.rpartition('.')[0]
|
|
print(file)
|
|
for row in csvreader:
|
|
complete_data[row[0]][row[1]][straftat_zuordnung[delikt_code]]["2023"] = {
|
|
"Erfasste Fälle": cleanup_int(row[2]),
|
|
"Aufgeklärte Fälle": cleanup_int(row[3]),
|
|
"Aufklärung relativ": cleanup_float(row[4]),
|
|
}
|
|
complete_data[row[0]][row[1]][straftat_zuordnung[delikt_code]]["2024"] = {
|
|
"Erfasste Fälle": cleanup_int(row[5]),
|
|
"Aufgeklärte Fälle": cleanup_int(row[6]),
|
|
"Aufklärung relativ": cleanup_float(row[7]),
|
|
}
|
|
|
|
with open('data.json', 'w', encoding="utf-8") as fp:
|
|
json.dump(complete_data, fp, ensure_ascii=False, indent=4)
|
|
#print(complete_data)
|