首頁 >後端開發 >Python教學 >如何從單一檔案中的多個 JSON 物件中提取特定資料?

如何從單一檔案中的多個 JSON 物件中提取特定資料?

DDD
DDD原創
2024-10-27 16:03:01283瀏覽

How to Extract Specific Data from Multiple JSON Objects in a Single File?

從單一檔案存取多個JSON 物件

使用JSON 檔案可能具有挑戰性,特別是在處理儲存在一個檔案中的多個JSON 物件時單一檔案。要從此類文件中提取特定信息,需要定制解決方案。

在此場景中,一個 JSON 檔案包含多個 JSON 對象,每個物件代表特定事件的資訊。任務是從每個物件中提取「時間戳記」和「有用性」欄位並將其格式化為資料幀。

要達到此目的,建議利用 jsonstream 函式庫。它提供了一種處理大型 JSON 檔案的專門方法,無需將整個檔案載入到記憶體中。該函式庫允許一次一個檔案中迭代解碼 JSON 物件。

可以如下使用 JSONstream 函式庫:

<code class="python">from jsonstream import json

with open("input.json", "r") as f:
    for obj in json.parse(f):
        # Access and process individual fields from the parsed JSON object
        timestamp = obj["Timestamp"]
        usefulness = obj["Usefulness"]
        # ... (perform any necessary actions with the extracted data)</code>

或者,如果無法直接存取檔案或首選,將 JSONDecoder 類別與 raw_decode 方法結合使用可能是一種有效的解決方案。此方法可以解碼大型 JSON 字串,而無需在一次操作中讀取整個檔案。它迭代地查找有效的 JSON 物件並追蹤最後的解析位置。

<code class="python">from json import JSONDecoder

decoder = JSONDecoder()
with open("input.json", "r") as f:
    for line in f:
        try:
            obj, pos = decoder.raw_decode(line, 0)
            timestamp = obj["Timestamp"]
            usefulness = obj["Usefulness"]
            # ... (perform actions with the extracted data)
        except JSONDecodeError:
            # Handle any errors encountered during decoding</code>

JSONstream 函式庫和 raw_decode 方法都提供了從單一檔案中提取多個 JSON 物件的有效方法,使其更容易工作使用和分析大型 JSON 資料集。

以上是如何從單一檔案中的多個 JSON 物件中提取特定資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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