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

标签 python python-2.7 dictionary twitter tweepy

我正在使用 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() 的好例子。

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

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

编辑:

事实证明,我对什么是 Rest 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 中打开它,并确保一切都按预期运行,并且我得到了正确数量的结果。

毕竟,编写与 Twitter API 交互的 Python 代码很容易!

在此添加所有这些,希望它能在将来帮助其他人!如果确实如此,请告诉我! :)

最佳答案

根据 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.

因此,用更简单的话来说,它会返回一个 JSON 对象,其中告诉您有关您已发出的请求数剩余请求数,乍一看难以阅读的原因在于,它包含您进行的每种类型的 API 调用的计数,而不仅仅是您刚刚执行的当前 API 调用。

例如,如果您运行上面的脚本,那么,您可以看到您已经调用了 api.home_timeline() 现在根据 twitter 规则和条例,您只能调用 15在给定的窗口 session 中调用此方法,因此,如果您解压缩返回的 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类型的链接,使其更具用户可读性,然后对其进行分析。

关于Python 2.7 - Tweepy - 如何获取 rate_limit_status()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30313124/

相关文章:

python - 从文件中提取数据和信号

Python - 模拟导入字典

python - 如何将键控 2 列表列表转换为相同键控 N 列表列表?

python - 用 numpy 最小二乘法拟合线性表面

python - numba 中两个数组未声明的加法

python - 来自数字模块的 ABC 类数字

python-2.7 - Python Opencv 2.4.X 摄像机错误

c# - Linq to Dictionary<string, List<string>> 与 Null 值

python - 索引错误,如果列有值,则从数组中删除行

python - 如何知道我是否在装饰一个方法