modified: app.py

This commit is contained in:
SimolZimol
2024-09-10 13:08:33 +02:00
parent 9e4c231a1d
commit 0fdcc0af15

33
app.py
View File

@@ -15,34 +15,21 @@ def fetch_weather_data():
# Entpacken der BZ2-Datei
decompressed_data = bz2.decompress(response.content)
weather_data = json.loads(decompressed_data)
# Leeres Array zur Speicherung der Stationsdaten
# Liste zur Speicherung der StationNumbers
station_data = []
# Durchlaufe alle Messages in den Wetterdaten
for message in weather_data.get('messages', []):
# Jede "message" enthält Wetterdaten
for subset in message[1]: # Zweites Element von "message" ist das Datenarray
for subset in message[1]:
station_info = {}
for data_point in subset:
if isinstance(data_point, dict): # Sicherstellen, dass es ein Dictionary ist
if data_point.get('key') == 'stationNumber':
station_info['stationNumber'] = data_point.get('value')
if data_point.get('key') == 'stationOrSiteName':
station_info['stationName'] = data_point.get('value')
if data_point.get('key') == 'airTemperature':
station_info['temperature'] = data_point.get('value')
if data_point.get('key') == 'dewpointTemperature':
station_info['dewpoint'] = data_point.get('value')
if data_point.get('key') == 'relativeHumidity':
station_info['humidity'] = data_point.get('value')
if data_point.get('key') == 'windSpeed':
station_info['windSpeed'] = data_point.get('value')
# Wenn wir eine gültige stationNumber haben, fügen wir die Daten hinzu
if isinstance(data_point, list):
# Nur die stationNumber extrahieren
for entry in data_point:
if entry['key'] == 'stationNumber':
station_info['stationNumber'] = entry['value']
if 'stationNumber' in station_info:
station_data.append(station_info)
station_data.append(station_info) # Nur hinzufügen, wenn stationNumber existiert
# Sortiere die Daten nach der StationNumber
station_data = sorted(station_data, key=lambda x: x.get('stationNumber', 0))
return station_data