用 Python 的 json_repair 修复大型语言模型输出的无效 JSON

June 09, 2025

使用 Python 的 json_repair 模块修复大型语言模型(LLM)生成的无效 JSON

在飞速发展的 AI 领域,大型语言模型(LLM)在生成结构化数据方面变得不可或缺。然而,一个常见的问题是,尽管这些模型功能强大,但有时会生成语法错误或格式不正确的 JSON 输出。这可能会扰乱自动化工作流程和数据处理管道。

这时 json_repair 应运而生,这是一个强大而轻量级的 Python 模块,专门用于解决此问题。json_repair 旨在修复无效的 JSON 字符串,是任何处理 LLM 输出的人的宝贵工具,可确保数据完整性和平稳运行。

为什么 json_repair 如此重要?

LLM 天生有时会在 JSON 输出中引入细微错误——可能是缺少括号、未转义的字符,或多余、意外的词语。虽然这些看似小错误,但它们可能会导致 JSON 字符串无法被标准的 json.loads() 方法解析,从而导致错误并中断工作流程。

json_repair 旨在智能地纠正这些缺陷。它不仅仅是简单地尝试使用 try-except 块与 json.loads()json_repair 会积极尝试使用一系列启发式方法修复 JSON 字符串。这意味着它可以:

  • 修复语法错误: 纠正缺少引号、逗号错位、未转义的字符以及不完整的键值对。
  • 修复格式错误结构: 通过添加必要的元素(如逗号或括号)来处理不完整或损坏的数组和对象。
  • 清理多余字符: 处理包含非 JSON 字符(例如注释)的 JSON,并在保持有效结构的同时对其进行清理。
  • 自动补全缺失值: 对缺失值自动插入合理的默认值(例如空字符串或 null)。

即使 OpenAI 的结构化输出功能(例如 GPT-4o 的 JSON 模式)取得了进展,json_repair 仍然具有现实意义。正如开发者所指出的,即使是结构化输出有时也会出现异常值,需要强大的修复机制。

如何使用 json_repair

开始使用 json_repair 非常简单。您可以通过 pip 安装它:

pip install json-repair

安装后,您可以轻松地将其集成到您的 Python 代码中:

from json_repair import repair_json, loads, load

bad_json_string = "{'name': 'Alice', 'age': 30," # 缺少闭合大括号
good_json_string = repair_json(bad_json_string)
print(good_json_string) # 输出:{"name": "Alice"}
原创文章: 查看原文

分享本文