我是python的新手,我正在尝试使用库。它提出了一个例外,我试图找出哪一个。这就是我想要的:
except tweepy.TweepError as e:
print e
print type(e)
print e.__dict__
print e.reason
print type(e.reason)
这就是我得到的:
[{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'>
我试图找到那个代码。我试过e.reason.code没有成功,我不知道该尝试什么。
答案 0 :(得分:16)
这个怎么样?
except tweepy.TweepError as e:
print e.message[0]['code'] # prints 34
print e.args[0][0]['code'] # prints 34
答案 1 :(得分:9)
这是2018年的情况:
e.message[0]['code']
不再有效。仍然需要注意in the documentation,但文档已过时,问题已经been reported。目前您收到错误'TweepError' object has no attribute 'message'
。
我找到了几种可行的解决方案:
e.api_code
int
):34
e.reason
str
):[{'code': 34, 'message': 'Sorry, that page does not exist.'}]
e.args[0][0]['code']
e.args[0][0]['message']
int
)和简单的消息(类str
)。34
{Sorry, that page does not exist.
尽可能满足您的需求。
答案 2 :(得分:8)
自2013年以来,情况发生了很大变化。截至目前,正确的答案是使用e.api_code
。
答案 3 :(得分:2)
要获取错误代码,请使用monq发布的方法。以下示例说明了如何获取错误代码和消息。我必须从e.reason字符串中提取消息,如果有人有更好的方法来检索消息,请分享。
注意:此代码适用于任何错误代码/原因,格式如下。
[{&#39;代码&#39;:50,&#39;消息&#39;:&#39;用户未找到。&#39;}]
def getExceptionMessage(msg):
words = msg.split(' ')
errorMsg = ""
for index, word in enumerate(words):
if index not in [0,1,2]:
errorMsg = errorMsg + ' ' + word
errorMsg = errorMsg.rstrip("\'}]")
errorMsg = errorMsg.lstrip(" \'")
return errorMsg
你可以这样称呼它:
try:
# Some tweepy api call, ex) api.get_user(screen_name = usrScreenName)
except tweepy.TweepError as e:
print (e.api_code)
print (getExceptionMessage(e.reason))
答案 4 :(得分:-1)
我是这样做的:
except tweepy.TweepError as e:
print e.response.status