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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容