Python twitter包:获取错误代码

时间:2017-06-24 10:58:47

标签: python error-handling python-twitter

我还不熟悉Python中的错误处理。我想知道当我使用import twitter #[...] try: twitter_connexion.friendships.create(screen_name = "someone_who_blocked_me", follow = True) except twitter.TwitterHTTPError as twittererror: print(twittererror) 包收到错误时如何检索错误代码:

'code': 162
  

Twitter使用参数发送URL:1.1 / friendships / create.json的状态403 :( 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)   详细信息:{'错误':[{'消息':'您已被禁止在用户请求时关注此帐户。',&#39 ;代码':162}]}

在这种情况下,我想要检索162部分,或仅检索twittererror.args

print(twittererror.args[0][0:10])是一个元组,其中包含一个元素,这是一个字符串,Twitter se输出162

如何获得twittererror.args[0][582:585]

(显然,[582:585]不是我正在寻找的答案,因为任何其他错误消息的长度都不同,错误代码不会出现在{{1}} )

1 个答案:

答案 0 :(得分:4)

查看如何在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))