Seite 1 von 1

api.wunderground.com für meinen Raspberry

Verfasst: Samstag 25. März 2017, 01:40
von iop
Hallo,
ich will mit meinem Raspberry eine Bewässerung steuern.
Jetzt scheitere ich schon beim Import der Regenwahrscheinlichkeit von api.wunderground.com.
Ich bekomme folgende Fehlermeldung:
rain = parsed_json['forecast']['simpleforecast']['forecastday']['gpf_allday']
TypeError: list indices must be integers, not str

Das ist mein Script:

Code: Alles auswählen

import urllib2
import json
f = urllib2.urlopen('http://api.wunderground.com/api/xxxxxxxxxxxxxx/q/CA/hamburg.json')
json_string = f.read()
parsed_json = json.loads(json_string)
rain = parsed_json['forecast']['simpleforecast']['forecastday']['gpf_allday']
print (rain)
Könnt ihr mir helfen?
Danke
iop

Re: api.wunderground.com für meinen Raspberry

Verfasst: Samstag 25. März 2017, 07:58
von nezzcarth
Na ja, die Fehlermeldung ist doch ganz aussagekräftig: In deinem komplizierten Ausdruck in der vorletzten Zeile ist mindestens ein Element kein Dictionary sondern eine Liste. Welches das ist, kann man ohne die Datenstruktur zu kennen nicht sagen. Lass sie dir doch einfach mal ausgeben (zum Beispiel mit pprint aus dem pprint modul). Dann solltest du es sehen. Alternativ kannst du den verschachtelten Zugriff testweise in einzelne zerlegen.

Edit: Laut des Beispiels in der API-Doku ist 'forecastday' eine Liste. D.h. vor 'qpf_allday' (nicht gpf), muss ein Listenindex stehen.

Re: api.wunderground.com für meinen Raspberry

Verfasst: Samstag 25. März 2017, 10:47
von iop
@nezzcarth

Vielen Dank,