【问题标题】:Need Help Converting Tweet Data to JSON text file需要帮助将推文数据转换为 JSON 文本文件
【发布时间】:2019-02-19 11:29:19
【问题描述】:

我正在做一个需要查询 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)

【问题讨论】:

  • “在我的代码执行完成后,我有一个空白文档,其中包含一条推文的数据。” 请澄清。您的意思是该文件完全空白且不包含任何数据?或者您的意思是该文件仅包含一条推文的数据,即使您有更多推文?
  • 谢谢! @罗根乔希。我知道这是一个非常愚蠢的问题,但感谢您帮助我。我知道这是一个非常简单的解决方法。
  • @KevinNgo 这不是一个愚蠢的问题;事后诸葛亮:)我很好奇你为什么认为你第二次需要它 - 缩进很重要,而且你已经在第一个 with 的上下文块中
  • @roganjosh。在我的课程中,我还没有使用“with”。我认为我需要一个“结束语句”才能正确执行代码。我错了。我感谢您的帮助。作为学生,在 stackoverflow 上发帖可能有点吓人。
  • 继续吧。你说的解决了我的问题。然后我可以将答案标记为已解决。

标签: python json twitter tweepy


【解决方案1】:

以“w”模式打开文件会截断文件,删除之前在其中的任何内容。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多