json_repair: 一个使用启发式方法和模式引导来修复来自 LLMs 和 APIs 的格式错误的 JSON 的 Python 库
json_repair: 一个使用启发式方法和模式引导来修复来自 LLMs 和 APIs 的格式错误的 JSON 的 Python 库
它解决了什么问题
json_repair 旨在处理在从 LLMs、 APIs 或日志中接收数据时经常出现的格式错误的 JSON 字符串。它修复常见的语法错误——例如缺失的引号、错位的逗号、未闭合的括号以及多余的散文内容——这些错误通常会导致标准的 JSON 解析器(如 json.loads())失败。
它是如何工作的
该库基于 BNF 定义解析 JSON 并应用启发式方法来纠正错误。它会自动添加缺失的括号、为缺失引号的字符串添加引号,并清理空格或换行符。默认情况下,它首先尝试使用标准库的 json.loads() 进行严格解析,只有在解析失败时才会回退到修复解析器。
它是为谁准备的
构建依赖于 LLM 生成的 JSON 的 AI 应用的开发者,以及处理日志或用户输入等无法保证严格 JSON 合规性的不可靠数据源的开发者。
亮点
- 即插即用替换: 可以直接用作
json.loads()和json.load()的直接替代品。 - 模式引导修复: 支持 JSON Schema 或 Pydantic v2 模型来填充缺失值、强制转换标量并丢弃不允许的属性。
- 流式传输支持: 包括
stream_stable模式,以便在流式输出期间保持部分 JSON 的稳定。 - 严格模式: 提供
strict=True选项,在出现结构性问题时抛出错误而不是进行修复。 - CLI 工具: 提供命令行界面,用于修复 JSON 文件或通过 stdin 管道传输数据。
Sources
- undefinedmangiucugna/json_repair