json读取数据:ValueError: Extra data: line 77 column 2

来源:互联网 发布:php log打印到日志 编辑:程序博客网 时间:2024/05/19 06:50

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

参考文章:
作者:coreki
链接:http://www.jianshu.com/p/b6a02b49845c

阅读全文
0 0
原创粉丝点击