我想指出的是,我已经知道如何将用户的推文保存在文件中。现在我的问题是我希望能够将给定主题的推文保存在文件中。
问题在于,一旦我尝试“转换”程序,就会收到错误“ 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
答案 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限制将迫使您减少此费用。)