Python 2.7 - Tweepy - 如何获得 rate_limit_status()?

Python 2.7 - Tweepy - How to get rate_limit_status()?

我正在使用 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()

当我打印函数的结果时,它给了我一本我无法破译的大字典。我查看了 tweepy 文档,但找不到任何关于使用 rate_limit_status() 的好例子。

解决此类问题的下一步我应该做什么?

是否有工具可以格式化这些大型词典,以便我可以阅读它们并尝试破译如何访问词典中的值?

编辑:

原来我对休息 API 是什么以及它的工作原理并没有很好的理解!我期待我脑子里的东西更复杂。

我实际上切换到 twitter Python 模块 twitter 库而不是 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 documentation

Returns the remaining number of API requests available to the requesting user before the API limit is reached for the current hour. Calls to rate_limit_status do not count against the rate limit. If authentication credentials are provided, the rate limit status for the authenticating user is returned. Otherwise, the rate limit status for the requester’s IP address is returned.

因此,用更简单的话来说,您可以这样说,它 returns 一个 JSON 对象,其中告诉您 您提出的请求数 剩余请求数,乍一看难以阅读的原因在于,它包含您进行的每种类型的API调用的计数而不仅仅是当前的 API 呼叫你刚刚执行。

例如,如果您 运行 上面的脚本,那么,您可以看到您已经调用了 api.home_timeline() 现在根据 twitter 规则和条例,您只能调用 15 个在给定的 window 会话中使用此方法,因此,如果您解压缩返回的 JSON 对象,那么您可以看到,有很多数据,但是如果您分析数据,您会发现 api.home_timeline() 只影响相关方法的限制,比如在调用上述方法时可以使用以下方法检查速率限制:

data = api.rate_limit_status()

print data['resources']['statuses']['/statuses/home_timeline']
print data['resources']['users']['/users/lookup']

但是你必须对返回的 JSON 做一些研究,然后你可以从 JSON 对象中提取相关数据,因为返回的 JSON 对象是难以阅读,您始终可以使用 these 类型的链接来提高用户可读性,然后对其进行分析。