我正在一个需要查询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)
答案 0 :(得分:1)
以“ w”模式打开文件会截断该文件,并删除其中的所有内容。
第二次打开文件时,它将擦除您在for循环中写入文件的所有内容。然后,它将tweet
对象的内容写入文件。这就是为什么您在输出中仅看到一条推文的原因。
with
块不需要任何结束语句。这是Python中典型的块结构。当程序退出缩进部分时,with
块将自行执行清理。
如果删除程序的最后两行,则所有推文都应正确显示在输出文件中。