【发布时间】: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'))从文件中读取,而不是在开始解析之前将整个文件放入内存中。