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)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容