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

Need Help Converting Tweet Data to JSON text file

我正在做一个需要查询 Twitter api 数据的项目。我是新手,无法将所有数据写入 json 格式的文本文件。

我有一个大文件,其中有很多缺失的 Twitter 数据。我正在使用推文 ID 来查询来自 Twitter API 的数据。虽然我的代码是 运行,但我能够看到填充文本文件的推文数据。但是,在我的代码执行完毕后,我有一个空白文档,其中包含一条推文的数据。

我认为问题可能出在我构建 "with open" 语句的方式上。但是,我不确定我做错了什么。有人看到我做错了什么吗?

谢谢!

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)

在 "w" 模式下打开文件会截断文件,删除其中之前的所有内容。

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

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

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