Bekomme den Fehler code von tweepy Ausnahme-Instanz
Ich bin neu in python und ich versuche, eine Bibliothek. Es wirft eine exception, und ich bin versucht zu ermitteln, welche eine. Dies ist, was ich versuche:
except tweepy.TweepError as e:
print e
print type(e)
print e.__dict__
print e.reason
print type(e.reason)
Dies ist, was ich immer bin:
[{u'message': u'Sorry, that page does not exist', u'code': 34}]
<class 'tweepy.error.TweepError'>
{'reason': u"[{u'message': u'Sorry, that page does not exist', u'code': 34}]", 'response': <httplib.HTTPResponse instance at 0x00000000029CEAC8>}
[{u'message': u'Sorry, that page does not exist', u'code': 34}]
<type 'unicode'>
Ich versuche zu lernen, code. Ich habe versucht, e.Grund.code ohne Erfolg und ich habe keine Ahnung, was zu versuchen.
Ja - ich habe vielleicht falsch verstanden, dass man - Was
Traceback (most recent call last): File "descargar.py", line 70, in <module> drucken e.Grund[0]['code'] TypeError: string indices must be integers
Sorry, war einige Zeit her, ich erinnere mich nicht, was ich Tat, aber ich habe den code (wie ich wollte). Dennoch, deine Antwort funktioniert, also muss ich es akzeptieren 🙂
e.reason[0]['code']
?Traceback (most recent call last): File "descargar.py", line 70, in <module> drucken e.Grund[0]['code'] TypeError: string indices must be integers
Sorry, war einige Zeit her, ich erinnere mich nicht, was ich Tat, aber ich habe den code (wie ich wollte). Dennoch, deine Antwort funktioniert, also muss ich es akzeptieren 🙂
InformationsquelleAutor José D. | 2013-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über dieses?
e
ist ein list-Objekt, dase.message[0]['code']
würde nicht funktionieren. Hätten Sie nicht stattdessene[0]['code']
?Eigentlich jetzt, dass ich Blick auf die github-Seite, tweepError ist das überschreiben der print-Anweisung mit der
__str__
so dass möglicherweise, warum habe ich Probleme. Haben Sie zufällig wissen, wiee
strukturiert ist?Dieser funktioniert nicht mehr. Bitte siehe meine Antwort.
InformationsquelleAutor alecxe
Dinge haben sich ziemlich geändert, seit 2013. Die richtige Antwort als jetzt, ist die Verwendung
e.api_code
.InformationsquelleAutor monq
Dies ist die situation, wie von 2018:
e.message[0]['code']
funktioniert nicht mehr. Es wird noch darauf hingewiesen in der Dokumentation aber die docs sind veraltet und das Thema wurde schon gemeldet wurde. Derzeit erhalten Sie eine Fehlermeldung'TweepError' object has no attribute 'message'
.Gibt es mehrere funktionierende Lösungen, die ich gefunden habe:
e.api_code
Gibt einen einfachen code, der Wert (Klasse
int
):34
e.reason
Gibt text mit code und Nachricht (Klasse
str
):[{'code': 34, 'message': 'Sorry, that page does not exist.'}]
e.args[0][0]['code']
e.args[0][0]['message']
Gibt einen einfachen code, der Wert (Klasse
int
) und einfache Nachricht (Klassestr
).34
Sorry, that page does not exist.
e.response
Gibt eine voll Anfragen.response-Objekt die werden dann behandelt, indem mehrere Möglichkeiten mit den Anforderungen API.
Je nachdem, was passt Ihre Bedürfnisse am besten.
e.api_code
zurückNone
. Zumindest wennstatus code = 401
, vielleicht ist es ein bug.Blick auf die Twitter API-Dokumentation. Verstehe ich es richtig, jede Antwort enthält den HTTP-status-code, aber nicht jede Antwort enthält einen Fehler-code (API-code). API-codes sind nur für die häufigsten Fehler.
Unheimlich genug. Limit ist nicht in
e.api_code
. Verwenden Sie dietweepy.RateLimit
Ausnahme. oder diee.args[0][0]['code']
Wie ist diese nicht markiert, so ist die beste Antwort!! Danke.
InformationsquelleAutor Jeyekomon
Bekommen, nur der Fehler-code mit der Methode monq gepostet. Das folgende Beispiel zeigt, wie man sowohl den Fehlercode und die-Meldung. Ich hatte zum extrahieren der Nachricht aus dem e.Grund-string, wenn jemand eine bessere Methode zum abrufen nur die Meldung, bitte teilen.
Hinweis: Dieser code sollte funktionieren für alle Fehler-code/Grund mit dem folgenden format.
[{'code': 50, 'message': 'Benutzer nicht gefunden.'}]
Und Sie können es nennen, wie folgt:
InformationsquelleAutor Hard.Core.Coder
Hier ist, wie ich es mache:
Ja, es druckt, welcher HTTP-status-code vom server zurückgegeben wird, im Falle eines Fehlers.
Aber 34 ist keine Antwort status code hier, es ist eine twitter-Fehler-code.
Ich sehe, was du meinst. In diesem Fall ist meine Lösung falsch. Sorry für die Verwirrung.
InformationsquelleAutor tmatti