mangiucugna/json_repair
Repair malformed JSON from LLMs, APIs, logs, and user input in Python.
What it solves
json_repair 是為了處理在從 LLM、API 或日誌取得資料時常見的格式錯誤 JSON 字串而設計。它會修正常見的語法錯誤——例如缺少引號、逗號位置錯誤、未關閉的括號、以及雜散的文字——這些錯誤通常會讓標準的 JSON 解析器如 json.loads() 失敗。
How it works
此函式庫依據 BNF 定義解析 JSON,並套用啟發式演算法來校正錯誤。它會自動加入缺少的括號、為缺少引號的字串加上引號,並清理多餘的空白或換行。預設情況下,會先嘗試使用標準函式庫的 json.loads() 進行嚴格解析,只有在失敗時才會退回到修復解析器。
Who it’s for
適用於開發依賴 LLM 產生 JSON 的 AI 應用程式的開發者,以及處理如日誌或使用者輸入等不可靠資料來源、無法保證嚴格 JSON 合規性的情境。
Highlights
- Drop-in Replacement: 可直接取代
json.loads()與json.load()使用。 - Schema-Guided Repair: 支援 JSON Schema 或 Pydantic v2 模型,以填補遺漏值、強制轉換標量,並剔除不允許的屬性。
- Streaming Support: 包含
stream_stable模式,可在串流輸出時保持部分 JSON 的穩定性。 - Strict Mode: 提供
strict=True選項,在結構問題上拋出錯誤而非自動修復。 - CLI Tool: 提供命令列介面,可修復 JSON 檔案或透過 stdin 管道資料。