Python twitter 包:获取错误代码

Python twitter package : get error code

我还不太熟悉 Python 中的错误处理。我想知道如何在使用 python-twitter 包出错时检索错误代码:

import twitter

#[...]

try:
    twitter_connexion.friendships.create(screen_name = "someone_who_blocked_me", follow = True)
except twitter.TwitterHTTPError as twittererror:
     print(twittererror)

Twitter sent status 403 for URL: 1.1/friendships/create.json using parameters: (follow=True&oauth_consumer_key=XXX&oauth_nonce=XXX&oauth_signature_method=HMAC-SHA1&oauth_timestamp=XXX&oauth_token=XXX&oauth_version=1.0&screen_name=someone_who_blocked_me&oauth_signature=XXX) details: {'errors': [{'message': 'You have been blocked from following this account at the request of the user.', 'code': 162}]}

在这种情况下,我想检索 'code': 162 部分,或者只检索 162.

twittererror.args是一个元组,里面有一个元素,是一个字符串,print(twittererror.args[0][0:10])输出Twitter se

如何获得 162

(显然,twittererror.args[0][582:585] 不是我要找的答案,因为任何其他错误消息的长度都不同,错误代码也不会在 [582:585]

查看 this GitHub repo 中 TwitterHTTPError 的定义方式,您应该使用 twittererror.response_data.

获取字典

因此你可以这样做:

import twitter

#[...]

try:
    twitter_connexion.friendships.create(screen_name = "someone_who_blocked_me", follow = True)
except twitter.TwitterHTTPError as twittererror:
     for error in twittererror.response_data.get("errors", []):
          print(error.get("code", None))