需要帮助将Tweet数据转换为JSON文本文件

时间:2018-09-14 16:02:30

标签: python json twitter tweepy

我正在一个需要查询twitter api数据的项目。我还很陌生,并且无法将所有数据写入json格式的文本文件。

我有一个很大的文件,其中包含许多丢失的Twitter数据。我正在使用推特ID,以便从Twitter API查询数据。当我的代码运行时,我可以看到填充文本文件的tweet数据。但是,执行完代码后,我得到了一个空白文档,其中包含一条推文的数据。

我认为问题可能与我构建“开放式”语句的方式有关。但是,我不确定自己在做什么错。有人看到我在做什么错吗?

谢谢!

tweet_file = 'tweet_json.txt'
list_id = (twitter_archive['tweet_id'])
with open(os.path.join(os.getcwd(), tweet_file), mode = 'w') as f:
    for id in list_id:
        try:
            tweet = api.get_status(id, tweet_mode='extended')
            json.dump(tweet._json, f, indent = 4)
            f.write('\n')
        except tweepy.TweepError:
            print("tweet # " + str(id) + " not found")
    with open(os.path.join(os.getcwd(), tweet_file), mode = 'w') as f: 
        json.dump(tweet._json, f, indent = 4)

1 个答案:

答案 0 :(得分:1)

以“ w”模式打开文件会截断该文件,并删除其中的所有内容。

第二次打开文件时,它将擦除您在for循环中写入文件的所有内容。然后,它将tweet对象的内容写入文件。这就是为什么您在输出中仅看到一条推文的原因。

with块不需要任何结束语句。这是Python中典型的块结构。当程序退出缩进部分时,with块将自行执行清理。

如果删除程序的最后两行,则所有推文都应正确显示在输出文件中。