Guten Morgen,
ich möchte mit meinem u.g. Code eine API x-mal ausführen und dazu eine for-Schleife vor die eigentliche Funktion setzen. Irgendwie fehlt mir noch ein wichtiger Teil, damit das ganze läuft. Was habe ich vergessen? Kann mir jemand bitte helfen?
Vielen Dank und schöne Wochenendgrüße!
import requests
from pprint import pprint
def main ():
city = ["Johannesburg", "Hamburg", "Hannover", "Berlin"]
for item in city:
....
response = requests.get("http://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=3600e5cb48f86a62a861f5d9609af316&units=metric")
weather = response.json()
#pprint(weather) auskommentieren, um alle Daten zu sehen.
print("Ort:",weather['name'])
print("Temperatur:", weather['main'] ['temp'])
print("Bewölkung:", weather['weather'] [0] ['description'])
print("Windgeschwindigkeit:", weather['wind'] ['speed'])
if __name__ == '__main__':
main()
for-Schleife komplettieren zum API-Abruf
@PythonsPalace: wenn man etwas wiederholen möchte, sollte man das in eine for-Scheife schreiben. Statt den query-String bei requests selbst per + zusammenzustücken sollte man das params-Argument und ein Wörerbuch verwenden, dann werden Sonderzeichen auch gleich richtig kodiert. Wichtig sind auch Variablennamen, city ist ja keine einzelne Stadt, sondern eine Liste von Städten, der Name cities wäre daher passender. item ist dann auch nicht nur irgendein item sondern eine Stadt city.
Code: Alles auswählen
import requests
APPID = "xxx"
def main ():
cities = ["Johannesburg", "Hamburg", "Hannover", "Berlin"]
for city in cities:
response = requests.get("http://api.openweathermap.org/data/2.5/weather", params={"q": city, "appid": APPID, "units": "metric"})
weather = response.json()
print("Ort:",weather['name'])
if __name__ == '__main__':
main()
-
- User
- Beiträge: 12
- Registriert: Freitag 9. September 2016, 09:58
Klasse! Viel einfacher und übersichtlicher! Dankeschön!