python - 录制有关给定主题的推文时出现问题

标签 python tweepy tweets

我想指出,我已经知道如何将用户的推文保存在文件中。现在我的问题是我希望能够将给定主题的推文保存在文件中。

问题是,当我尝试“转换”程序时,我收到错误“Status”对象不可迭代,如下所示:

感谢那些能够提供帮助的人:)

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。您可以查看此示例 here .

这意味着您必须访问特定属性才能迭代它们,而不能迭代对象本身。例如,如果您想从推文中获取文本,您可以将行更改为:

z = [x for x in tweet.text]
<小时/>

如果您尝试将推文的全部信息放入 JSON 文件中(即将 Status 对象放入 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 限制将迫使您减少此数量)。

关于python - 录制有关给定主题的推文时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863836/

相关文章:

python - swift中类似python的map函数

python - 如何正确关闭 tweepy 流

Python os.getenv() 在设置 Windows 环境变量时返回 None

java - 如何在配置单元中使用 serde 上传 twitter json 数据?

python - Pandas 根据区域频繁每 5 秒进行一次分组

python - 如何确定使用哪种合并模式(添加/平均/乘法/点/连接)?

python - 从列表中删除字典的重复项

python - 如何线程 Tweepy 流

python - 根据字符串中的单词从 DataFrame 中删除行

javascript - 有没有什么方法可以不使用 tweetbox 直接点击一个按钮来发推文?