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 管道数据。