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 からのデータパイプに対応します。