modified: app.py

This commit is contained in:
SimolZimol
2024-09-10 12:52:57 +02:00
parent d571b1fd48
commit 5cff49a22e

51
app.py
View File

@@ -15,38 +15,43 @@ def fetch_weather_data():
# Entpacken der BZ2-Datei
decompressed_data = bz2.decompress(response.content)
weather_data = json.loads(decompressed_data)
# Ausgabe der Daten zur Überprüfung
print(json.dumps(weather_data, indent=2)) # Debug-Ausgabe der vollständigen JSON-Daten
# Extrahieren der relevanten Informationen, sortiert nach stationNumber
station_data = []
# Durchlaufe die Nachrichtenstruktur
for message in weather_data.get('messages', []):
for subset in message[1]:
station_info = {}
for data_point in subset:
if isinstance(data_point, list):
# Suchen nach relevanten Schlüsseln und Werten
for entry in data_point:
if entry['key'] == 'stationNumber':
station_info['stationNumber'] = entry['value']
if entry['key'] == 'stationOrSiteName':
station_info['stationName'] = entry['value']
if entry['key'] == 'airTemperature':
station_info['temperature'] = entry['value']
if entry['key'] == 'dewpointTemperature':
station_info['dewpoint'] = entry['value']
if entry['key'] == 'relativeHumidity':
station_info['humidity'] = entry['value']
if entry['key'] == 'windSpeed':
station_info['windSpeed'] = entry['value']
station_data.append(station_info)
# Es gibt eine zweite Ebene, in der die Subsets enthalten sind
if len(message) > 1 and isinstance(message[1], list):
for subset in message[1]:
station_info = {}
# Durchlaufe das Subset, um stationNumber, Temperatur usw. zu finden
for data_point in subset:
if isinstance(data_point, list):
for entry in data_point:
if entry['key'] == 'stationNumber':
station_info['stationNumber'] = entry['value']
if entry['key'] == 'stationOrSiteName':
station_info['stationName'] = entry['value']
if entry['key'] == 'airTemperature':
station_info['temperature'] = entry['value']
if entry['key'] == 'dewpointTemperature':
station_info['dewpoint'] = entry['value']
if entry['key'] == 'relativeHumidity':
station_info['humidity'] = entry['value']
if entry['key'] == 'windSpeed':
station_info['windSpeed'] = entry['value']
# Nur Datensätze hinzufügen, die tatsächlich Daten enthalten
if 'stationNumber' in station_info:
station_data.append(station_info)
# Sortiere die Daten nach der StationNumber
station_data = sorted(station_data, key=lambda x: x.get('stationNumber', 0))
return station_data
return []
# Route für die Hauptseite
@app.route('/')
def index():