2017-09-24 4 views
0

Hallo Ich versuche, eine API-Anfrage mit Python 3 für Wetter U-Bahn zu bekommen, um nur einen einfachen Ausdruck der Wetterbedingungen zu machen, kann mir jemand einen Tipp geben, was ich falsch mache? Ich muss hier viel lernen, also ist die Lernkurve steil! Entschuldigung, wenn die Frage sehr einfach ist, was ist der bessere Code zwischen den beiden? Zumindest mit einem, bei dem ich arbeiten und dann bauen könnte ... Danke. Diese beiden Codes sind Beispielskripte, die ich von der WU-Website & Github erhalten habe. Der erste Code gibt mir eine Fehlermeldung „zur Beobachtung in Daten ([‚Geschichte‘] [‚Beobachtungen‘]): Typeerror: Liste Indizes müssen ganze Zahlen oder Scheiben sein, nicht str“API Anfrage Wetter U-Bahn

from urllib.request import urlopen 
import json 

api_key = "" 
date = "20170901" 
zip_code = "53711" 

response = urlopen("http://api.wunderground.com/api/%s/history_%s/q/%s.json" 
% (api_key, date, zip_code)) 

json_data = response.read().decode('utf-8', 'replace') 

data = json.loads(json_data) 

for observation in data (['history']['observations']): 
    print("Date/Time: " + observation['date']['pretty']) 
    print("Temperature: " + observation['tempi']) 
    print("Humidity:  " + observation['hum']) 

Dies ist ein zweiter Versuch meine erste API-Anfrage, aber es gibt mir einen Fehler „Typeerror: nicht unterstützte Operandtyp (e) für%:‚NoneType‘und‚tuple‘“

from urllib.request import urlopen 
import json 

f = urlopen('http://api.wunderground.com/api//geolookup/conditions/q/IA/Cedar_Rapids.json') 

json_string = f.read() 

parsed_json = json.loads(json_string) 

location = parsed_json['location']['city'] 

temp_f = parsed_json['current_observation']['temp_f'] 

print ("Current temperature in %s is: %s") % (location, temp_f) 
f.close() 

jeden Tipp, dass ein Profi einen newb geben auf Selbstlernende Themen wie diese werden sehr geschätzt ... Ich kann von WU sehen, dass mein API-Schlüssel funktioniert ... Aber der Code ist falsch :(

Antwort

0

Der Grund für den Fehler, auf den Sie in Ihrem zweiten Beispiel stießen, liegt darin, dass dies eine ungültige Syntax zu sein scheint. Ich denke, was Sie suchen, ist etwas Ähnliches wie das Folgende.

print("this is a %s" % ("my string",)) 

Davon abgesehen, habe ich zusammen ein Paket vor einer Weile mit dem ersten Schritten mit Weather Underground zu helfen, wenn Sie einen Blick für einige Hinweise nehmen wollen. Oder installieren Sie einfach WunderWeather. Hier ist das Dokument.

+0

Hallo ran durch die PIP-Installation für Wunderweather und auch die Tar.gz-Extraktion und Installation, aber ich bekomme immer noch ein Modul nicht gefunden Fehler ... Irgendwelche Tipps? Der pip install 'py -3.6 -m pip installiere WunderWeather' hat gut funktioniert, bekomme aber immer noch einen Fehler ... – HenryHub