Try/außer bei der Verwendung von Python-requests-Modul

Tun einige API testen und versuchen, zu erstellen eine Funktion, die, gegeben eine eingegeben URL wird zurückgegeben, der json-Antwort, aber wenn ein HTTP-Fehler ist, ist die Antwort eine Fehlermeldung zurückgegeben wird.

War ich mit urllib2 vor, aber jetzt versucht die Anfragen statt. Aber es sieht aus wie meiner, außer block wird nie ausgeführt, unabhängig von dem Fehler.

testURL = 'http://httpbin.org/status/404'


def return_json(URL):
    try:
        response = requests.get(URL)
        json_obj = response.json()
        return json_obj
    except requests.exceptions.HTTPError as e:
        return "Error: " + str(e)

Das Ergebnis bekomme ich bei der Ausführung der oben...

<Response [404]>
Was genau ist ein HTTP-Fehler? Es gibt status-codes, aber nicht alles andere als 200 unbedingt bedeutet, dass es ein Fehler irgendeiner Art ist. Als Sie bemerkte, das request Bibliothek hält diese nur ein weiterer Aspekt einer HTTP-response und nicht zu einer Ausnahme. So müssten Sie ein bisschen mehr spezifisch über das, was ist ein "Fehler" für Ihren Fall.
Danke Lukas, ich denke, für meinen Fall etwas anderes als 200 sein sollte als Fehler betrachtet.

InformationsquelleAutor mroriel | 2014-07-01

Schreibe einen Kommentar