modified: app.py

This commit is contained in:
SimolZimol
2024-09-09 19:40:06 +02:00
parent 9a3564a44d
commit ea6325f41d

20
app.py
View File

@@ -12,7 +12,7 @@ def get_weather_data():
try:
# Herunterladen der Datei
response = requests.get(url)
response.raise_for_status() # Überprüfen, ob der Abruf erfolgreich war
response.raise_for_status() # Check if request was successful
# Dekomprimieren der .gz-Datei
file_content = gzip.decompress(response.content)
@@ -27,23 +27,23 @@ def get_weather_data():
except json.JSONDecodeError as e:
return {"error": f"Fehler beim Verarbeiten der Wetterdaten: {e}"}
# Funktion, um die Wetterdaten für einen bestimmten Ort zu finden
# Funktion, um die Wetterdaten für einen bestimmten Ort zu finden (mit mehreren Treffern)
def find_weather_by_city(city, geojson_data):
results = []
matched_stations = []
for feature in geojson_data['features']:
station_name = feature['properties']['data_004']['value'] # stationOrSiteName
if city.lower() in station_name.lower():
result = {
matched_stations.append({
"station": station_name,
"temperature": feature['properties']['data_016']['value'],
"precipitation": feature['properties']['data_021']['value'],
"wind_speed": feature['properties']['data_057']['value'],
"humidity": feature['properties']['data_015']['value']
}
results.append(result)
if results:
return results
})
if matched_stations:
return matched_stations
else:
return {"error": "Ort nicht gefunden"}
@@ -65,7 +65,7 @@ def get_weather():
if "error" in weather_data:
return jsonify(weather_data)
# Suche nach dem Wetter für den eingegebenen Ort
# Suche nach dem Wetter für den eingegebenen Ort (mit mehreren Treffern)
result = find_weather_by_city(city, weather_data)
return jsonify(result)