使用Python 的json.loads 時發生錯誤:「ValueError: Extra data」
使用Python 的json.loads 函數解析json.load時,您可能會遇到錯誤:
ValueError: Extra data: line 88 column 2 - line 50607 column 2 (char 3077 - 1868399)
此錯誤表示存在額外資料不屬於有效JSON 結構的JSON 檔案。
原因
當 JSON 檔案每行包含多個 JSON 物件時,通常會發生此錯誤。 json.loads 期望單一 JSON 物件作為輸入,但如果第一個物件後面有其他內容,則會引發「額外資料」錯誤。
範例JSON
例如,考慮以下範例JSON 檔案:
{"id": 123, "name": "John"} { "id": 456, "name": "Jane" }
此檔案包含兩個JSON 對象,但每個物件並不位於單獨的線。當 json.loads 遇到第一個物件時,它會嘗試解析它,並在到達第二個物件時引發錯誤。
解決方案
此錯誤的解決方案是為了確保每個 JSON 物件在檔案中獨佔一行。這可以透過手動編輯檔案或使用工具重新格式化 JSON 來完成。
迭代解析
如果JSON 文件很大並且包含許多JSON 對象,您還可以使用迭代方法來解析文件,而無需將整個文件加載到內存中。
import json tweets = [] with open('tweets.json', 'r') as file: for line in file: tweets.append(json.loads(line))
在這種方法中,該檔案逐行迭代,每一行都被解析為一個 JSON 物件。這避免了儲存中間的 Python 對象,並且對於大檔案更有效。
以上是為什麼我在使用 Python 的 json.loads 時收到「ValueError: Extra Data」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!