Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich rufe eine Funktion auf, erstelle eine Variable und möchte diese zurückgeben zum weiterverarbeiten.
Was ich bekomme ist allerdings ein NameError "data", verstehe aber nicht wieso...
import urllib.request, json
import urllib.request, xml
def main():
data_request()
actual_temp = "Die derzeitige Temperatur beträgt: {}°C".format(data["main"]["temp"])
def data_request():
with urllib.request.urlopen("Some Url with json") as url:
data = json.loads(url.read())
return data
if __name__ == "__main__":
main()
Zuletzt geändert von Mr. R341 am Donnerstag 3. Dezember 2020, 10:50, insgesamt 1-mal geändert.
import urllib.request, json
import urllib.request, xml
def main():
data = data_request()
actual_temp = "Die derzeitige Temperatur beträgt: {}°C".format(data["main"]["temp"])
def data_request():
with urllib.request.urlopen("Some Url with json") as url:
data = json.loads(url.read())
return data
if __name__ == "__main__":
main()
import urllib.request, json
import urllib.request, xml
def main():
data_request()
actual_temp = "Die derzeitige Temperatur beträgt: {}°C".format(data["main"]["temp"])
def data_request():
with urllib.request.urlopen("Some Url with json") as url:
data = json.loads(url.read())
return data
if __name__ == "__main__":
main()
Bolitho hat geschrieben: Donnerstag 3. Dezember 2020, 10:48
Du musst die Daten an eine Variable binden, wenn du die Funktion aufrufst, um das zurückgegebene Datenpaket anzunehmen.
import urllib.request, json
import urllib.request, xml
def main():
data = data_request()
actual_temp = "Die derzeitige Temperatur beträgt: {}°C".format(data["main"]["temp"])
def data_request(data):
with urllib.request.urlopen("Some Url with json") as url:
data = json.loads(url.read())
return data
if __name__ == "__main__":
main()
ui super Das Funktioniert einwandfrei ^^ Danke
Ich frage mich, was Sirius3 oder __Blackjack__ dazu sagen, dass in main(): "data = funktion" und nicht nur eine funktion steht ^^
main ist auch nur eine Funktion wie jede andere auch. Und wenn man sich auf Funktionen ohne Rückgabe beschränken müßte, könnte man keine komplexen Sachen programmieren.
Deine Importe sehen komisch aus, urllib.requests wird zwei mal importiert; jedes Modul sollte seine eigene import-Zeile bekommen.
`actual_temp` wird gar nicht verwendet. Benutze auch keine Abkürzungen. Aus dem Text vermute ich, dass die Variable eigentlich current_temperature heißen müßte.
Sirius3 hat geschrieben: Donnerstag 3. Dezember 2020, 11:15
main ist auch nur eine Funktion wie jede andere auch. Und wenn man sich auf Funktionen ohne Rückgabe beschränken müßte, könnte man keine komplexen Sachen programmieren.
Deine Importe sehen komisch aus, urllib.requests wird zwei mal importiert; jedes Modul sollte seine eigene import-Zeile bekommen.
`actual_temp` wird gar nicht verwendet. Benutze auch keine Abkürzungen. Aus dem Text vermute ich, dass die Variable eigentlich current_temperature heißen müßte.
Ja.. hatte dahinter noch ein print() zum debuggen, desswegen war actual_temp ungenutzt
(Danke xD denkfehler bei der Übersetzung)
Keine Abkürzungen, weil Du jedes mal beim Tippen und beim Lesen Hirnkapazität brauchst, um die Abkürzung wieder zu entschlüsseln. Und natürlich denkt jeder zweite bei temp an temporär, was in dem Zusammenhang total verwirrt. Kurz: Festplattenkapazität ist billiger als Hirnkapazität.