tim*_*ram 2 python twitter dictionary tweepy python-2.7
我正在使用Python 2.7和最新版本的tweepy模块开发Twitter应用程序.我无法弄清楚的一件事是如何使用函数rate_limit_status()
这是我的代码:
import tweepy, time, sys, random, pickle
import pprint
# argfile = str(sys.argv[1])
#enter the corresponding information from your Twitter application:
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_KEY = ''
ACCESS_SECRET = ''
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
public_tweets = api.home_timeline()
user = api.get_user('@MyUserName')
print api.rate_limit_status()
Run Code Online (Sandbox Code Playgroud)
当我打印函数的结果时,它给了我一个大字典,我无法破译.我查看了tweepy文档,但找不到使用rate_limit_status()的任何好例子.
我应该做的下一步是如何解决这样的问题?
是否有工具来格式化这些大字典,以便我可以阅读它们并试图破译如何访问字典中的值?
编辑:
事实证明,我没有很好地理解Rest API是什么以及它是如何工作的!我期待着一些更加复杂的事情.
我实际上切换到twitter Python模块的推特库而不是Tweepy,然后对如何使用Twitter API进行了大量研究.
真正帮助过我的两个YouTube视频是:
https://www.youtube.com/watch?v=7YcW25PHnAA
和
https://www.youtube.com/watch?v=fhPb6ocUz_k
Postman Chrome应用程序非常棒,让我可以轻松测试和可视化我对Twitter API的调用工作方式,并且可以轻松地将生成的JSON格式化,以便我可以阅读它.
为了做快速计算,我还从Postman那里拿了JSON并把它扔到这个网站http://konklone.io/json/来获得一个csv然后我可以在Excel中打开并确保一切都按预期运行并且我是获得正确的结果数量.
毕竟,编写Python代码与Twitter API交互很容易!
添加所有这些希望它将来会帮助别人!如果确实如此,请告诉我!:)
根据Tweepy 文档
返回在达到当前小时的API限制之前,请求用户可用的剩余API请求数.对rate_limit_status的调用不计入速率限制.如果提供了身份验证凭据,则返回身份验证用户的速率限制状态.否则,返回请求者IP地址的速率限制状态.
因此,在简单的话,你可以说,它返回一个JSON对象,其中会告诉你关于你提出的要求数和剩余的请求数,为什么它是很难在第一眼就看的原因在于,面对的是,它包含您所进行的每种API调用的计数,而不仅仅是您刚刚执行的当前API调用.
因此,例如,如果您运行上面的脚本,那么,api.home_timeline()根据twitter规则和规则,您可以看到您已经调用了Now,您只能在给定的窗口会话中对此方法进行15次调用,因此,如果您解压缩返回的JSON对象然后你可以看到,有很多数据但是如果你分析数据那么,你会发现api.home_timeline()只影响相关方法的限制,比如在调用上面的方法时你可以使用以下方法检查速率限制:
data = api.rate_limit_status()
print data['resources']['statuses']['/statuses/home_timeline']
print data['resources']['users']['/users/lookup']
Run Code Online (Sandbox Code Playgroud)
但是,您必须对返回的JSON进行一些研究,然后您可以从JSON对象中提取相关数据,因为返回的JSON对象很难读取,您可以始终使用这些类型的链接使其更多用户可读,然后分析它.