從單一檔案存取多個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中文網其他相關文章!