Python 读取JSON时出错:无法解码JSON对象
我正在使用glob读取一组JSON文件,并将它们存储在一个列表中。名单的长度是1046。当我逐个读取JSON文件并加载它以运行进一步的代码时,它只在595个文件上运行,并给出以下错误:Python 读取JSON时出错:无法解码JSON对象,python,json,glob,Python,Json,Glob,我正在使用glob读取一组JSON文件,并将它们存储在一个列表中。名单的长度是1046。当我逐个读取JSON文件并加载它以运行进一步的代码时,它只在595个文件上运行,并给出以下错误: Traceback (most recent call last): File "removeDeleted.py", line 38, in <module> d = json.load(open(fn)) File "/usr/lib/python2.7/json/__init__.py", li
Traceback (most recent call last):
File "removeDeleted.py", line 38, in <module>
d = json.load(open(fn))
File "/usr/lib/python2.7/json/__init__.py", line 291, in load
**kw)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
有人能给我建议一个解决这个错误的方法吗?正如Blender所说,您需要找出哪些文件包含无效的JSON。为此,您需要向代码中添加一些调试语句:
json_file_names = sorted(glob.glob("./Intel_Shared_Data/gtFine/train/*/*.json"))
for fn in json_file_names:
#print fn
#temp = temp + 1
#count = 0
try:
d = json.load(open(fn))
objects = d["objects"]
for j in range(len(objects)):
except ValueError as e:
print "Could not load {}, invalid JSON".format({})
您的一个json文本文件为空。也许可以先看看你有没有零大小的文件
find . -size 0
从终端中的json文件目录运行。其中一个文件包含无效的json,Python无法解析。查看它是哪一个。更具体地说,您的一个文件是空的
json.load(“”)
将给出相同的错误。
find . -size 0