mangiucugna/json_repair
Repair malformed JSON from LLMs, APIs, logs, and user input in Python.
解决的问题
json_repair 旨在处理通常由 LLM 输出、API、日志或用户输入引起的格式错误的 JSON 字符串。它可以修复常见的语法错误——例如缺失引号、逗号位置错误、括号未闭合以及多余的文本——这些错误通常会导致 json.loads() 等标准 JSON 解析器失败。
工作原理
该库基于 BNF 定义解析 JSON,并应用启发式算法来纠正结构问题。它会自动添加缺失的括号、为缺失引号的字符串添加引号,并清理空格和换行符。默认情况下,它首先尝试严格的 json.loads() 检查;如果失败,则回退到其自身的修复解析器来挽救数据。
适用对象
构建依赖于非确定性来源结构化数据的应用程序的开发人员,特别是那些正在集成可能会产生轻微无效 JSON 的 LLM 的开发人员。
亮点
- 即插即用替换: 可以直接用作
json.loads()和json.load()的替代方案。 - 模式引导修复: 支持使用 JSON Schema 或 Pydantic v2 模型来填充缺失值、强制转换类型并丢弃不允许的属性。
- 流式传输支持: 包含
stream_stable模式,可在数据流传输时保持部分 JSON 的稳定性。 - 严格模式: 提供
strict=True选项,在出现结构问题时抛出错误而不是进行修复。 - CLI 工具: 提供用于修复 JSON 文件或通过 stdin 管道传输数据的命令行界面。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目