python - 记录给定主题的推文问题
问题描述
我想指出我已经知道如何将用户的推文保存在文件中。现在我的问题是我希望能够将给定主题的推文保存在文件中。
问题是,一旦我尝试“转换”程序,就会得到错误“状态”对象不可迭代,如下所示:
感谢那些能够提供帮助的人:)
search_word = input("subject ? \n")
for tweet in tweepy.Cursor(api.search, q = search_word, lang = "en", since = "2019-04-01").items(3000):
z = [x for x in tweet]
with open('%s_tweets.json' % search_word, 'w') as f:
json.dump(z, out)
Traceback (most recent call last):
File "C:/Users/TheoLC/Desktop/python/twitter_search/collect+200tw.py", line 17, in <module>
z = [x for x in tweet]
TypeError: 'Status' object is not iterable
解决方案
您希望对上面的代码做什么并不完全清楚。对于只看一个片段的人来说,有很多东西是不适合的,所以我有一些例子可以帮助你完成一些你可能正在尝试做的事情。
您当前的代码失败的原因是因为您试图用您的z=
行迭代一个 Status 对象。该对象在结构上类似于 JSON。你可以在这里看到一个例子。
这意味着您必须访问特定属性才能迭代它们,您不能迭代对象本身。例如,如果您想从推文中获取文本,您可以将您的行更改为:
z = [x for x in tweet.text]
如果您只是想将推文的全部信息放入 JSON 文件(即状态对象放入 JSON 文件),那么您根本不需要迭代它,您只需json.dump()
对象即可。为此,请删除您的z=
行,并将您的 json 转储行更改为
json.dump(tweet._json, out)
将您的代码保留为:
search_word = input("subject ? \n")
for tweet in tweepy.Cursor(api.search, q = search_word, lang = "en", since = "2019-04-01").items(3000):
with open('%s_tweets.json' % search_word, 'w') as f:
json.dump(tweet._json, out)
希望有帮助。(你没有问过这个问题,但作为附录,我认为你的数量.items()
可能太高了。我认为 API 限制会迫使你减少这个)。
推荐阅读
- javascript - 初始路由器推送(VueJS)后,组件道具没有反应
- javascript - 无法发出 Http 请求
- r - 如何计算距离下一次发生的天数?
- json - 将对象转换为可编码对象失败:“偏移”实例
- python - 动态更改 Django 表单的字段
- amazon-web-services - 应用包含过期的生命周期规则后,S3 对象不会删除
- r - R中的简单函数调用
- c++ - 如何将基抽象类对象作为类成员但在构造函数中接受派生类成员?
- vue.js - 如何在按钮单击时关闭 Vuesax 弹出屏幕?
- javascript - 检查是否拉取数据库信息时如何停止“top many rerenders”?