在给定主题上记录推文时出现问题

时间:2019-04-26 08:39:09

标签: 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

1 个答案:

答案 0 :(得分:0)

尚不清楚您希望对上面的代码做什么。对于只看摘要的人来说,有很多东西并不合适,所以我有一些例子可以帮助您 尝试做。


当前代码失败的原因是,您正在尝试使用z=行遍历Status对象。该对象是JSON,就像结构一样。您可以看到此here的示例。

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

z = [x for x in tweet.text]

如果您只是想将推文的全部信息都存储到一个JSON文件中(即将Status对象存储到一个JSON文件中),则根本不需要遍历它,您可以{ {1}}对象。为此,请删除您的json.dump()行,并将json转储行更改为

z=

将您的代码保留为:

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) 中的金额可能太高了。我认为API限制将迫使您减少此费用。)