【问题标题】:Python twitter package : get error codePython twitter 包:获取错误代码
【发布时间】:2017-06-24 10:58:47
【问题描述】:

我对 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 使用参数为 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) details: {'errors': [{'message': '应用户的要求,您已被阻止关注此帐户。', 'code': 162}]}

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

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

如何获得162

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

【问题讨论】:

  • print(dir(twittererror))的输出是什么

标签: python error-handling python-twitter


【解决方案1】:

查看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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多