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