高效且節省記憶體的 JSON 載入
處理大型 JSON 檔案時,記憶體消耗可能會成為一個重要問題。使用標準 json.load() 函數一次載入整個檔案可能會導致記憶體使用過多。
更有效的方法是增量解析 JSON 文件,隨時只將必要的部分載入到記憶體中給定時間。這類似於迭代文本文件中的行。
引入 ijson
對於 JSON 處理,ijson 庫提供了一個類似 SAX 的接口,允許增量解析。當它遇到 JSON 結構中的不同元素時,例如陣列和映射的開頭和結尾,以及與鍵關聯的值,它會發出事件。
使用ijson 解析大型JSON 文件
要使用ijson 解析大型JSON 文件,只需將json.load() 替換為ijson.parse() 迭代器即可:
import ijson for prefix, event, value in ijson.parse(open(json_file_name)): # Process the event and value according to your needs
前綴提供類似路徑的路徑JSON 樹中的標識符,event 指示事件的類型(例如start_map、string),value 包含與事件關聯的實際值。
ijson 的優點
其他提示
以上是以下是一些標題選項,使用不同的問題格式並強調主要優點: 直接問題: * 如何有效載入大型 JSON 檔案而不出現記憶體問題? * 什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!