Frage zur Übergabe und Anzeige von API Inhalten
Verfasst: Mittwoch 9. Juni 2021, 08:25
Hallo zusammen,
ich bin Anfänger und probiere gerade Wetterdaten über eine API abzurufen und mir diese in einer GUI anzeigen zu lassen. Der Abruf der Daten funktioniert soweit, allerdings bekomme ich es nicht hin, dass die Daten in meiner GUI angezeigt werden.
Ich habe den Code wieder soweit zurück gebaut, dass nach der Eingabe der Stadt in der GUI und anschließendem Beenden die Wetterdaten im Terminal ausgegeben werden.
Meine Frage ist allerdings wie ich es schaffen kann, dass die Daten in der GUI ausgegeben werden?
Wenn mir jemand weiterhelfen könnte wäre das super vielen Dank!
Info: den API Schlüssel habe ich abgeändert, hier hätte ich natürlich einen funktionierenden
import json
import requests
import datetime
from tkinter import *
def button_action():
entry_text = eingabefeld.get()
if (entry_text == ""):
welcome_label.config(text="Bitte gibt eine Stadt ein fuer die du das Wetter wissen willst")
else:
welcome_label.config(text="Sie fragen das Wetter fuer " + entry_text + " ab ")
return entry_text
# Ein Fenster erstellen
fenster = Tk()
fenster.title("Wetterabfrage")
# In der Ereignisschleife auf Eingabe des Benutzers warten
# Felder und Labels
# Labels
my_label = Label(fenster, text="Gib eine Stadt ein: ")
welcome_label = Label(fenster)
eingabefeld = Entry(fenster, bd=5, width=40)
welcom_button = Button(fenster, text = "Klick me", command=button_action)
exit_button = Button(fenster, text = "Beenden", command=fenster.quit)
wetterinlab = Label(fenster, text="Wetter in : ")
luftfeuchlab = Label(fenster, text="Luftfeuchtigkeit in % : ")
luftdrucklab = Label(fenster, text="Luftdruck in hpa :")
tempmaxlab = Label(fenster, text="Max. Temperatur in °C :")
tempminlab = Label(fenster, text="Min. Temperatur in °C :")
windgelab = Label(fenster, text="Windgeschwindigkeit in km/h :")
windrilab = Label(fenster, text="Windrichung :")
my_label.grid(row = 0, column = 0)
eingabefeld.grid(row = 0, column = 1)
welcom_button.grid(row = 1, column = 0)
exit_button.grid(row = 1, column = 1)
welcome_label.grid(row =2, column = 0, columnspan =2)
#Wetterdaten
wetterinlab.grid(row = 3, column = 0)
luftfeuchlab.grid(row = 4, column = 0)
luftdrucklab.grid(row = 5, column = 0)
tempmaxlab.grid(row = 6, column = 0)
tempminlab.grid(row = 7, column = 0)
windgelab.grid(row = 8, column = 0)
windrilab.grid(row = 9, column = 0)
stadt = button_action()
print(stadt)
url = "http://api.openweathermap.org/data/2.5/ ... APPID=0815" % (stadt)
print(url)
Response = requests.get(url)
WeatherData = Response.json()
#print(json.dumps(WeatherData, indent = 4, sort_keys = True))
print("Wetter in: {} ".format((WeatherData["name"])))
print("Luftfeuchtigkeit: {} %".format(WeatherData["main"]["humidity"]))
print("Luftdruck: {} hpa".format(WeatherData["main"]["pressure"]))
print("Temperatur: {}° C".format(str(WeatherData["main"]["temp"] - 273)))
print("Max. Temperatur: {}° C".format(str(WeatherData["main"]["temp_max"] - 273)))
print("Min. Temperatur: {}° C".format(str(WeatherData["main"]["temp_min"] - 273)))
print("Windgeschwindigkeit: {} m/s".format(WeatherData["wind"]["speed"]))
print("Windrichtung: {}°".format(WeatherData["wind"]["deg"]))
fenster.mainloop()
ich bin Anfänger und probiere gerade Wetterdaten über eine API abzurufen und mir diese in einer GUI anzeigen zu lassen. Der Abruf der Daten funktioniert soweit, allerdings bekomme ich es nicht hin, dass die Daten in meiner GUI angezeigt werden.
Ich habe den Code wieder soweit zurück gebaut, dass nach der Eingabe der Stadt in der GUI und anschließendem Beenden die Wetterdaten im Terminal ausgegeben werden.
Meine Frage ist allerdings wie ich es schaffen kann, dass die Daten in der GUI ausgegeben werden?
Wenn mir jemand weiterhelfen könnte wäre das super vielen Dank!
Info: den API Schlüssel habe ich abgeändert, hier hätte ich natürlich einen funktionierenden
import json
import requests
import datetime
from tkinter import *
def button_action():
entry_text = eingabefeld.get()
if (entry_text == ""):
welcome_label.config(text="Bitte gibt eine Stadt ein fuer die du das Wetter wissen willst")
else:
welcome_label.config(text="Sie fragen das Wetter fuer " + entry_text + " ab ")
return entry_text
# Ein Fenster erstellen
fenster = Tk()
fenster.title("Wetterabfrage")
# In der Ereignisschleife auf Eingabe des Benutzers warten
# Felder und Labels
# Labels
my_label = Label(fenster, text="Gib eine Stadt ein: ")
welcome_label = Label(fenster)
eingabefeld = Entry(fenster, bd=5, width=40)
welcom_button = Button(fenster, text = "Klick me", command=button_action)
exit_button = Button(fenster, text = "Beenden", command=fenster.quit)
wetterinlab = Label(fenster, text="Wetter in : ")
luftfeuchlab = Label(fenster, text="Luftfeuchtigkeit in % : ")
luftdrucklab = Label(fenster, text="Luftdruck in hpa :")
tempmaxlab = Label(fenster, text="Max. Temperatur in °C :")
tempminlab = Label(fenster, text="Min. Temperatur in °C :")
windgelab = Label(fenster, text="Windgeschwindigkeit in km/h :")
windrilab = Label(fenster, text="Windrichung :")
my_label.grid(row = 0, column = 0)
eingabefeld.grid(row = 0, column = 1)
welcom_button.grid(row = 1, column = 0)
exit_button.grid(row = 1, column = 1)
welcome_label.grid(row =2, column = 0, columnspan =2)
#Wetterdaten
wetterinlab.grid(row = 3, column = 0)
luftfeuchlab.grid(row = 4, column = 0)
luftdrucklab.grid(row = 5, column = 0)
tempmaxlab.grid(row = 6, column = 0)
tempminlab.grid(row = 7, column = 0)
windgelab.grid(row = 8, column = 0)
windrilab.grid(row = 9, column = 0)
stadt = button_action()
print(stadt)
url = "http://api.openweathermap.org/data/2.5/ ... APPID=0815" % (stadt)
print(url)
Response = requests.get(url)
WeatherData = Response.json()
#print(json.dumps(WeatherData, indent = 4, sort_keys = True))
print("Wetter in: {} ".format((WeatherData["name"])))
print("Luftfeuchtigkeit: {} %".format(WeatherData["main"]["humidity"]))
print("Luftdruck: {} hpa".format(WeatherData["main"]["pressure"]))
print("Temperatur: {}° C".format(str(WeatherData["main"]["temp"] - 273)))
print("Max. Temperatur: {}° C".format(str(WeatherData["main"]["temp_max"] - 273)))
print("Min. Temperatur: {}° C".format(str(WeatherData["main"]["temp_min"] - 273)))
print("Windgeschwindigkeit: {} m/s".format(WeatherData["wind"]["speed"]))
print("Windrichtung: {}°".format(WeatherData["wind"]["deg"]))
fenster.mainloop()