Python 推特包 : get error code

标签 python error-handling python-twitter

我还不太熟悉 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])

最佳答案

查看 TwitterHTTPError 是如何在 this GitHub repo 中定义的,您应该使用 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))

关于Python 推特包 : get error code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735652/

相关文章:

python - 如何使用paste()重叠两个或多个图像?

r - 遍历getFinancials并为viewFinancials创建数据框,同时跳过错误

python - 有没有更快的方法来做到这一点? (python 推特位置)

Python Twitter API Twitter错误: user_id must be type int

python - 减少数据库操作时间Django/Mysql

python - numpy 包含多个 dtype 时如何确定数组数据类型?

python - 如何将 webhook 事件添加到 Flask 服务器?

javascript - 为什么错误中堆栈属性是可选的?

c# - C#如何更改特定文本框的颜色(如果为空)?

api - 向 Twitter API V1.1 发送请求时 Twitter HTTP 错误(探索热门主题)