Ich habe meinen Code nicht geändert, aber jetzt, wenn ich versuche, es zu laufen, ich binArbeiten vor, aber nicht urllib.error.HTTPError bekommen: HTTP-Fehler 400: Bad Request
urllib.error.HTTPError: HTTP Error 400: Bad Request
Auf diese bekomme
Linieresponse = urlopen(url).read().decode('utf8')
Die uRL ist
url = 'http://api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/{}/{}.json'.format(state.strip(), city)
Soll ich bis später warten und erneut versuchen, da es bis vor nur eine Stunde arbeitet.
EDIT:
ich Python bin mit 3.5 und haben sich geändert zu
url = quote("http://api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/{}/{}.json").format(state.strip(), city)
Dies führt in der URL
http%3A//api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/%7B%7D/%7B%7D.json
und die Fehlermeldung
ValueError: unknown url type: 'http%3A//api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/%7B%7D/%7B%7D.json'
EDIT 2:
Ich habe
verwendeturl = 'api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/{}/{}.json'.format(state.strip(), city)
print (url)
url1 = quote(url)
url2 = 'http://'+ url1
Um die Räume zu kodieren, aber ich bin immer noch die 400 Fehler. Ich werde bis morgen warten und es erneut versuchen, vielleicht gibt es ein Problem mit meinem Zugang.
EDIT: Es funktioniert mit Städten ohne die Leerzeichen. Also werde ich weiter versuchen, diejenigen mit Räumen zu bekommen, die alleine arbeiten. Danke für Ihre Hilfe.
Ich denke, es ist wahrscheinlicher, dass Ihre 'url'-Variable nicht korrekt formatiert wurde. Das ist die [Bedeutung von HTTP-Fehler 400] (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes): der Dienst hat die Anfrage erhalten, konnte sie aber nicht verstehen. Bevor Sie urlopen() aufrufen, drucken Sie "url", um zu überprüfen, ob der Status und die Stadt wie erwartet interpoliert sind. –
Ich mache das bereits und ich habe diese http://api.wunderground.com/api/f8cb961c53baad52/geolookup/conditions/q/ID/Boise City.json Als ich zu dieser URL ging ging es ohne ein Problem. Aber jetzt mit jeder Stadt, die ich versucht habe, funktioniert meine Datei nicht. – Sam
Sie sollten Ihre Variablen mit 'urllib.quote()' kodieren, weil Leerzeichen in der URL urlopen durcheinander bringen. Siehe http://stackoverflow.com/questions/21735801/how-to-send-a-urllib2-request-with-added-white-spaces –