【问题标题】:Formatting and Decoding Twitter Stream JSON Output格式化和解码 Twitter 流 JSON 输出
【发布时间】:2014-05-07 22:52:00
【问题描述】:

我在格式化和编码使用我编写的 python 脚本收集的 twitter 流时遇到问题。输出如下所示:

{"created_at":"Wed May 07 20:53:05 +0000 2014", "id":464145921098674177, "id_str":"464145921098674177" ...

... 并在一行中继续此单个条目。每一行都是一条推文,其中包含大量结构相同的信息。

我尝试过简单地使用 python 的 JSON 模块将 json 文件转换为 dict,但它一直给我一个错误 - 说明该结构不是 JSON 序列化。

最后,我想将 JSON 输出输入表格格式。我正在尝试将文件放入 csv 并从那里开始。在这一点上,我会满足于任何可读的东西。仅供参考 - 我正在尝试坚持使用 Python,因为这是我所知道的。

这是我尝试使用的python代码:

导入 json

json_file = open('twitterOutput.json', 'r').readlines()

j = json.loads(json_file[0])

打印 j

这给了我错误:“无法解码 JSON 对象”。仅供参考 - 这只是测试代码。我只是想尝试让 json_file 列表的其中一行工作。

谢谢。

【问题讨论】:

  • 你能展示你已经尝试过的东西,这样我们就不会重复你可能已经做过的事情了吗?你试过json.loads(twitter_output_string)json.load(twitter_output_buffer) 吗?无论如何,请编辑问题以显示您的确切代码和您得到的确切错误。
  • 感谢您的回复...我已将我的 python 代码添加到原始帖子中。
  • 你不能这样做j = json.loads(json_file[0]),因为文件的一行本身不太可能是格式正确的 JSON。例如,格式良好的 JSON 的开头和结尾需要有{};更多关于here

标签: python json twitter


【解决方案1】:

不看任何代码很难判断哪里出错了,但以下应该可以做到:

import json

twitter_output = # string of twitter output
twitter_output_dict = json.loads(twitter_output)

或者,如果输出存储在文件中,那么:

import json

with open('twitter_output.json') as twitter_output_file:
    twitter_output_dict = json.load(twitter_output_file)

至于“尝试将文件放入 csv 并从那里开始”,您必须解释您希望如何处理以及如何构建它。据我所知,Twitter 返回的 JSON 是一个嵌套结构(如在 Twitter's docs 上看到的那样,因此以 csv 格式显示它实际上取决于您希望如何构建它。

【讨论】:

  • 我尝试使用您列出的代码。我不断收到 ValueError: No JSON object could be decoded.
猜你喜欢
  • 1970-01-01
  • 2015-07-27
  • 2018-07-04
  • 1970-01-01
  • 2017-08-29
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多