修复 LLM 输出的 json
https://github.com/mangiucugna/json_repair
pip install json_repair
repair_json()
pythonfrom json_repair import repair_json, loads
bad_json_string = '{"a": 1'
good_json_string = repair_json(bad_json_string)
print(good_json_string) # '{"a": 1}'
pythondef repair_json(
json_str: str = "",
return_objects: Optional[bool] = False, # True:对修复后的 json 字符串反序列化
skip_json_loads: Optional[bool] = False, # True:在修复前先调用 json.loads()
logging: Optional[bool] = False, # True:函数将返回一个元组,包含修复后的 json 字符串和一个记录了所有修复操作的日志列表
json_fd: Optional[TextIO] = None, # True:在修复前先调用 json.load();False:在修复前先调用 json.loads()
ensure_ascii: Optional[bool] = True, # True:所有非 ASCII 字符将在 json 字符串中转义;False:可以包含原始的 Unicode 字符
):
loads()
pythondef loads(
json_str: str,
skip_json_loads: Optional[bool] = False,
logging: Optional[bool] = False,
):
return repair_json(
json_str=json_str,
return_objects=True, # 默认调用 return_objects=True 的 repair_json 函数
skip_json_loads=skip_json_loads,
logging=logging,
)