modified: app.py

This commit is contained in:
SimolZimol
2024-09-10 09:23:17 +02:00
parent 092978bf8b
commit 4eb2f395d5

37
app.py
View File

@@ -23,10 +23,45 @@ def fetch_weather_data():
else:
return {"error": "Fehler beim Abrufen der Wetterdaten"}
def process_weather_data(data):
# Hier filtern wir relevante Daten aus den 16 Elementen des JSON
processed_data = []
for entry in data["messages"]:
for subset in entry:
station_name = next((item["value"] for item in subset if item["key"] == "stationOrSiteName"), None)
temperature = next((item["value"] for item in subset if item["key"] == "airTemperature"), None)
wind_speed = next((item["value"] for item in subset if item["key"] == "windSpeed"), None)
pressure = next((item["value"] for item in subset if item["key"] == "pressureReducedToMeanSeaLevel"), None)
humidity = next((item["value"] for item in subset if item["key"] == "relativeHumidity"), None)
visibility = next((item["value"] for item in subset if item["key"] == "horizontalVisibility"), None)
# Erstelle ein lesbares Format
station_data = {
"station": station_name,
"temperature": round(temperature - 273.15, 2) if temperature else None, # Konvertiere von Kelvin zu Celsius
"wind_speed": wind_speed,
"pressure": pressure,
"humidity": humidity,
"visibility": visibility
}
processed_data.append(station_data)
# Filtere nur die Einträge, die eine Stationsinformation enthalten
processed_data = [entry for entry in processed_data if entry["station"]]
return processed_data
@app.route('/weather')
def get_weather():
data = fetch_weather_data()
return jsonify(data)
if "error" in data:
return jsonify(data)
processed_data = process_weather_data(data)
return jsonify(processed_data)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)