【问题标题】:Parsing tweets' text out of "Status" wrapper in json file从 json 文件中的“状态”包装器中解析推文的文本
【发布时间】:2016-08-25 03:39:58
【问题描述】:

我使用这个基于 tweepy 的 code 通过 user_id 提取给定用户的推文。然后,我将给定用户 (alltweets) 的所有推文列表保存到 json 文件中,如下所示。请注意,如果没有“repr”,我无法将所有推文列表转储到 json 文件中。代码按预期工作

with open(os.path.join(output_file_path,'%s_tweets.json' % user_id), 'a') as f:
     json.dump(repr(alltweets), f)

但是,在将推文保存到 json 文件后,我在检索推文时遇到了一个问题。我需要访问每条推文中的文本,但我不确定如何处理 tweepy 使用的“状态”包装器(请参阅附件中的 json 文件示例)。sample json file content

我尝试如下迭代文件中的行,但文件被视为单行。

with open(fname, 'r') as f: 
     for line in f: 
        tweet = json.loads(line)

我还尝试在将 json 文件作为字符串读取后迭代状态,如下所示,但迭代发生在 json 文件中的单个字符上。

with open(fname, 'r') as f: 
     x = f.read() 
          for status in x: 
               """code"""

【问题讨论】:

  • 请提出一个明确的问题。我没有看到任何问号,目前还不清楚你到底在问什么……
  • 您没有在文件中保存 json。您实际上是在保存 reprStatus 对象列表。您需要在保存之前从对象中取出 json。
  • @JulienBernu:我的问题是,如何遍历 json 文件中的许多状态并提取推文的“文本”?
  • @Sevanteri 是的,与您所说的一致,Tweepy 文档在流式传输之后首先处理 Satuse。不幸的是,当我知道这一点时为时已晚。现在,我有 100G 的 twitter 数据,我保存为我需要处理的列表的 repr。所以,正如我上面的回复,问题是如何遍历 json 文件中的许多状态并提取推文的“文本”?

标签: python tweepy


【解决方案1】:

也许不是最漂亮的解决方案,但您可以将Status 声明为dict,然后将eval 声明为列表(文件的全部内容)。

Status = dict

f = open(fname, 'r')
data = eval(f.read())
f.close()

for status in data:
    """ do your stuff"""

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多