modified: app.py
This commit is contained in:
54
app.py
54
app.py
@@ -15,35 +15,33 @@ def fetch_weather_data():
|
||||
# Entpacken der BZ2-Datei
|
||||
decompressed_data = bz2.decompress(response.content)
|
||||
weather_data = json.loads(decompressed_data)
|
||||
|
||||
station_data = []
|
||||
# Durchlaufe alle Nachrichten
|
||||
for message in weather_data.get('messages', []):
|
||||
if len(message) > 1:
|
||||
# Gehe durch die Liste der Datensätze innerhalb jeder Nachricht
|
||||
for subset in message[1]:
|
||||
station_info = {}
|
||||
if isinstance(subset, list):
|
||||
# Durchlaufe alle Einträge innerhalb des Subsets
|
||||
for data_point in subset:
|
||||
if isinstance(data_point, dict):
|
||||
# Extrahiere die relevanten Wetterdaten
|
||||
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')
|
||||
|
||||
# Nur hinzufügen, wenn `stationNumber` vorhanden ist
|
||||
if station_info.get('stationNumber'):
|
||||
station_data.append(station_info)
|
||||
# Leeres Array zur Speicherung der Stationsdaten
|
||||
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
|
||||
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 '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))
|
||||
|
||||
Reference in New Issue
Block a user