我有一个如下所示的JSON文件:
{
"name":"A",
"age":19
}
{
"name":"B",
"age":20
}所以基本上这个文件包含一个人员列表。
我尝试在Python3中使用json.loads(str_content),但它返回了json.decoder.JSONDecodeError: Extra data:错误。
我检查了一个在线JSON解析器(http://json.parser.online.fr),它告诉我同样的问题。
如何解析没有根元素但有JSON对象列表的JSON文件?
发布于 2018-11-22 16:54:16
问题是您试图解析的字符串不是有效的JSON文档。它实际上是JSON文档的串联。因此,简单的json.loads()将不起作用。
你可以使用一些基于https://docs.python.org/3/library/json.html#json.JSONDecoder.raw_decode的东西。例如:(代码有点难看,但逻辑应该是清晰的):
import json
s = """{
"name":"A",
"age":19
}
{
"name":"B",
"age":20
}"""
def iter_jsons(s):
decoder = json.JSONDecoder()
i = 0
while True:
doc, i2 = decoder.raw_decode(s[i:].strip())
yield doc
if i == i2:
break
i= i2
print(list(iter_jsons(s))){'name':'A','age':19},{'name':'B','age':20}
发布于 2019-06-26 05:29:36
这就像一种护身符。
import json
json_file = "myfile.json"
objects = json.load(open(json_file))
for person in objects:
name = person['name']
print(name)https://stackoverflow.com/questions/53426839
复制相似问题