1

我正在探索 geduldig 为他的模块 TwitterPager 提供的代码示例。代码运行良好,但由于某种原因,在对可能的解决方案进行了多次不同尝试后,我无法将结果保存到 JSON 文件中。

这是我正在探索的代码示例,稍作修改:

from TwitterAPI import TwitterAPI
from TwitterAPI import TwitterPager
import json

consumer_key = 'xxx'
consumer_secret = 'xxx'
access_token = 'xxx'
access_secret = 'xxx'

api = TwitterAPI(consumer_key, consumer_secret, access_token,  access_secret)

r = TwitterPager(api, 'search/tweets', {'q':'pizza', 'count':100})
for item in r.get_iterator():
    if 'text' in item:       
        # print (item['text'])
        print (item)
    elif 'message' in item and item['code'] == 88:
        print ('SUSPEND, RATE LIMIT EXCEEDED: %s\n' % item['message'])
        break

然后我添加了以下代码:

with open('pizza.json', 'a') as fp:
    json.dump(item, fp)

实际上,我得到的输出是来自 Twitter 的整个 JSON 字符串,而不仅仅是请求的文本。但最后一段代码无法将结果保存到 JSON 文件中。我认为这可能与“for循环”有关,但我无法理解它。任何帮助将不胜感激。

4

1 回答 1

0

这是因为item是整个推文对象,而不仅仅是文本。试试这个:

json.dump(item['text'], fp)
于 2019-07-28T18:39:05.783 回答