From 56b31dc074aef1c06ece041184334eb4993c465e Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:23:27 +0200 Subject: [PATCH] modified: app.py --- app.py | 58 +++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/app.py b/app.py index 4ddf601..3d6dcf1 100644 --- a/app.py +++ b/app.py @@ -17,34 +17,50 @@ def load_weather_data(): # Parsen der JSON-Daten data = json.loads(decompressed_data.decode('utf-8')) - + + # Debug: Ausgabe der ersten Nachricht für Analysezwecke + print(json.dumps(data["messages"][:1], indent=4)) + # Extrahieren der relevanten Wetterdaten weather_data = [] - # Beispielhafte Iteration über die JSON-Daten (anpassen, wenn die Struktur bekannt ist) + # Verarbeite die Nachrichten for message in data["messages"]: - # Gehe tiefer in die Struktur, je nachdem wie die Daten aufgebaut sind - for station_data in message[1:]: - station_info = {} - if isinstance(station_data, list): - for info in station_data: - if isinstance(info, dict) and "key" in info: - if info["key"] == "stationNumber": - station_info["stationNumber"] = info["value"] - elif info["key"] == "stationOrSiteName": - station_info["stationName"] = info["value"] - elif info["key"] == "airTemperature": - station_info["temperature"] = round(info["value"] - 273.15, 2) # Umwandlung von K in °C - elif info["key"] == "windSpeed": - station_info["windSpeed"] = info["value"] - elif info["key"] == "pressureReducedToMeanSeaLevel": - station_info["pressure"] = info["value"] - - if "stationNumber" in station_info: - weather_data.append(station_info) + # Debug: Nachricht anzeigen, um zu überprüfen, ob sie korrekt verarbeitet wird + print(f"Processing message: {message}") + + # Prüfen, ob message eine Liste ist + if isinstance(message, list): + for station_data in message[1:]: # Die eigentlichen Wetterdaten scheinen ab dem zweiten Element zu sein + station_info = {} + if isinstance(station_data, list): + for info in station_data: + # Prüfe, ob info ein Dictionary ist + if isinstance(info, dict): + # Debug: Anzeigen, was info ist + print(f"Processing station info: {info}") + if "key" in info: + if info["key"] == "stationNumber": + station_info["stationNumber"] = info["value"] + elif info["key"] == "stationOrSiteName": + station_info["stationName"] = info["value"] + elif info["key"] == "airTemperature": + station_info["temperature"] = round(info["value"] - 273.15, 2) # Umwandlung von K in °C + elif info["key"] == "windSpeed": + station_info["windSpeed"] = info["value"] + elif info["key"] == "pressureReducedToMeanSeaLevel": + station_info["pressure"] = info["value"] + + # Nur vollständige Datensätze hinzufügen + if "stationNumber" in station_info: + weather_data.append(station_info) + + # Sortiere nach stationNumber + weather_data.sort(key=lambda x: x["stationNumber"]) return weather_data + # Flask Route für die Hauptseite @app.route('/') def index():