如果你要读取一个多行的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)