首頁 >後端開發 >Python教學 >為什麼我在使用 Python 的 json.loads 時收到「ValueError: Extra Data」?

為什麼我在使用 Python 的 json.loads 時收到「ValueError: Extra Data」?

Linda Hamilton
Linda Hamilton原創
2024-11-16 09:07:02808瀏覽

Why Am I Getting

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn