【问题标题】:Python json parsing very large filesPython json解析非常大的文件
【发布时间】:2016-04-24 22:42:43
【问题描述】:

我需要遍历一个 30meg 的 json 文件,这是一个仅包含文本的大文件。简单使用时。我也在使用来自沃尔玛https://developer.walmartlabs.com/docs/read/Special_Feeds 的提要。我不确定是否有人熟悉这个。

data = json.loads(open('file.json').read()) print data

我得到这个错误`

Traceback (most recent call last):
  File "/home/python/Desktop/read.py", line 21, in <module>
    data = json.loads(open('rolback.json').read())
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

`

我想是因为文件太大了。 我也尝试过流式传输文件并出现内存错误。

推荐什么选项/什么来处理这些非常大的文件? 这是包含文件的一些输出的先前问题的链接。 python ijson large file loop to get names

【问题讨论】:

  • 是不是文件中的JSON数组?还是只是一组 JSON 对象?
  • 使用jsonlint验证你有一个有效的json文件
  • 只是一组对象,我不知道如何使用simplejson得到不同的错误。
  • 根据需要使用json.load(open('file.json')) 从文件中读取,而不是在开始解析之前将整个文件放入内存中。

标签: python json


【解决方案1】:

No JSON object could be decoded 错误表示您的 json 数据包含无效的 JSON 数据。 30MB 非常小,不应该是您的问题。

您可以使用 simplejson 获得更好的错误消息,以便准确查看您的 json 包含错误的位置。

【讨论】:

  • 是的。我同意。 JSON 对大文件没有问题。
  • @user3667569 如果您同意答案,请使用 +1 按钮而不是写评论。谢谢!
  • 我的评论是 - JSON 对大文件没有问题,而您最初的答案中没有。
猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2013-02-28
相关资源
最近更新 更多