I'm new to python and I'm trying to use a library. It raises an exception, and I am trying to identify which one. This is what I am trying:
except tweepy.TweepError as e:
print e
print type(e)
print e.__dict__
print e.reason
print type(e.reason)
This is what I am getting:
[{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'>
Im trying to get to that code. I have tried e.reason.code with no success and I have no idea what to try.
wait_on_rate_limit – Whether or not to automatically wait for rate limits to replenish. wait_on_rate_limit_notify – Whether or not to print a notification when Tweepy is waiting for rate limits to replenish.
Returns full Tweet objects for up to 100 Tweets per request, specified by the id parameter.
Deprecated since version 4.10: The Twitter API v1. 1 endpoint this method uses is now deprecated and will be retired on October 29, 2022.
Every well-behaved exception derived from the base Exception class has an args
attribute (of type tuple
) that contains arguments passed to that exception. Most of the time only one argument is passed to an exception and can be accessed using args[0]
.
The argument Tweepy passes to its exceptions has a structure of type List[dict]
. You can get the error code (type int
) and the error message (type str
) from the argument using this code:
e.args[0][0]['code']
e.args[0][0]['message']
The TweepError exception class also provides several additional helpful attributes api_code
, reason
and response
. They are not documented for some reason even though they are a part of public API.
So you can get the error code (type int
) also using this code:
e.api_code
The error code used to be accessed using e.message[0]['code']
which no longer works. The message
attribute has been deprecated in Python 2.6 and removed in Python 3.0. Currently you get an error 'TweepError' object has no attribute 'message'
.
How about this?
except tweepy.TweepError as e:
print e.message[0]['code'] # prints 34
print e.args[0][0]['code'] # prints 34
Things have changed quite a bit since 2013. The correct answer as of now is to use e.api_code
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With