首頁 > 後端開發 > Python教學 > 如何在Python中解析包含多個JSON物件的JSON檔?

如何在Python中解析包含多個JSON物件的JSON檔?

DDD
發布: 2024-12-04 02:55:10
原創
420 人瀏覽過

How to Parse a JSON File Containing Multiple JSON Objects in Python?

載入並解析包含多個JSON 物件的JSON 檔案

與標準JSON 檔案不同,標準JSON 檔案將所有資料封裝在單一在物件或陣列中,某些JSON 格式將各個物件儲存為文字檔案中的單獨行。當嘗試在 Python 中解析此類檔案時,這可能會帶來挑戰。

解決ValueError

使用Python 的json.load() 函數載入JSON 檔案時對於多個對象,您可能會遇到「ValueError:額外資料」異常。此錯誤表示檔案在第一個解析物件之後包含意外資料。

解決方案:逐行解析

要處理此問題,您需要處理文件中的每一行作為獨立的 JSON 物件。將目前程式碼替換為以下內容:

import json

data = []
with open('file') as f:
    for line in f:
        data.append(json.loads(line))
登入後複製

此程式碼迭代檔案中的每一行,將其解析為 JSON 對象,並將其附加到列表中。

大檔案的注意事項

如果 JSON 檔案特別大,將所有物件附加到單一清單可能會消耗過多的記憶體。為了緩解這種情況,請在進入下一行之前單獨處理每個物件。避免:

data = []  # List of all objects
登入後複製

而是根據需要處理每個物件:

for line in f:
    process_object(json.loads(line))
登入後複製

處理分隔的 JSON 物件

如果您的 JSON文件包含單一對象由分隔符號(例如逗號或換行符)分隔的對象,您可以使用以下技術來解析每個對象對象:

import json, io

# Read delimited JSON objects from a file
with open('file') as f:
    json_string = f.read()

# Create a buffered reader
json_buffer = io.StringIO(json_string)

while True:
    # Read next JSON object from the buffer
    json_object = json.load(json_buffer)
    
    # Process JSON object
    if not json_object:  # Reached the end of the file
        break
登入後複製

以上是如何在Python中解析包含多個JSON物件的JSON檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板