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
  • 项目
  • 项目