JSON读取数据 ValueError: Extra data: line 2 column 2 - line 4 column 2

如果你要读取一个多行的json文件,比如

{"pid": 150400, "id": 150402, "name": "电影票"}
{"pid": 150000, "id": 150500, "name": "票务"}
{"pid": 150500, "id": 150501, "name": "国内旅游"}
{"pid": 150500, "id": 150502, "name": "海外旅游"}

如果你直接使用:

file = open('test.json','r')
res = file.read()
dic = json.loads(res)

则会抛出异常:ValueError: Extra data: line 2 column 2 - line 4 column 2
表示数据错误,数据太多:第二行-第四行
因为json只能读取一个文档对象,有两个解决办法
1、单行读取文件
2、保存数据源的时候,格式写为一个对象

代码:
方法一.单行读取文件

file = open('test.json','r')
for line in file.readlines():
    dic = json.loads(line)

方法二.保存数据源的时候,格式写为一个对象

{"cates":[
{"pid": 150400, "id": 150402, "name": "电影票"},
{"pid": 150000, "id": 150500, "name": "票务"},
{"pid": 150500, "id": 150501, "name": "国内旅游"},
{"pid": 150500, "id": 150502, "name": "海外旅游"}
]}

#然后 就是作为一个文档对象处理
file = open('test.json','r')
res = file.read()
dic = json.loads(res)

你可能感兴趣的:(JSON读取数据 ValueError: Extra data: line 2 column 2 - line 4 column 2)