我还不熟悉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发送的状态403 for url:1.1/友谊/create.json使用参数:(关注= true& amp; oauth_consumer_key_key = xxx& oauth_nonce = xxx& oauth_signature_macignature_macenature_macty_machod = hmac-sha1& oauth_tement = hmp; oauth_ xxx&omp; amp; uth_version = 1.0& screet_name = somey_who_blocked_me& oauth_signature = xxx( 详细信息:{'errors':[{'消息':'您已根据用户的要求被阻止遵循此帐户。','代码':162}]}
在这种情况下,我想检索'code': 162
零件,或者只是162
。
twittererror.args
是一个元组,其中有一个元素,即字符串, print(twittererror.args[0][0:10])
输出 Twitter se
如何获得162
?
(显然,twittererror.args[0][582:585]
不是我要寻找的答案,因为任何其他错误消息的长度都不同,并且错误代码不会在[582:585]
上(
查看在此github repo中如何定义的Twitterhttperror,您应该使用twittererror.response_data
获得DICT。
因此,您可以做类似的事情:
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))