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