You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则处理JSON字符串中的嵌套双引号问题?

解决生成式AI返回JSON的语法错误问题

一、针对性正则修复方案

针对值内未转义的双引号问题,可以通过精准正则匹配,仅替换键值对中值部分的双引号,避免影响键的合法双引号,同时兼容值内包含逗号的场景:

替换为单引号的实现

import re

def fix_json_quotes(json_str):
    # 匹配值范围内的未转义双引号,替换为单引号
    pattern = r'(?<=:"[^"]*)"(?=[^"]*")'
    fixed_str = re.sub(pattern, "'", json_str)
    # 清理值末尾的多余双引号(如示例中的"")
    fixed_str = re.sub(r'""(?=,|})', '"', fixed_str)
    return fixed_str

# 测试示例
original_json = '{"test":"this is "test" of "a" test"","result":"your result is "out" in our website"}'
fixed_json = fix_json_quotes(original_json)
# 输出:{"test":"this is 'test' of 'a' test","result":"your result is 'out' in our website"}

转义双引号(符合JSON规范)

如果希望保留双引号并按JSON要求转义,可修改正则:

def escape_json_quotes(json_str):
    pattern = r'(?<=:"[^"]*)"(?=[^"]*")'
    fixed_str = re.sub(pattern, r'\\"', json_str)
    fixed_str = re.sub(r'""(?=,|})', '"', fixed_str)
    return fixed_str

# 输出:{"test":"this is \"test\" of \"a\" test","result":"your result is \"out\" in our website"}

二、Python JSON清洗工具库

对于嵌套结构、换行等复杂场景,正则覆盖有限,可使用成熟的第三方库自动修复:

  • dirtyjson:专门处理不规范JSON,自动识别并修复未转义引号、缺失逗号等问题
    import dirtyjson
    
    broken_json = '{"test":"this is "test" of "a" test"","result":"your result is "out" in our website"}'
    data = dirtyjson.loads(broken_json)
    # 直接得到解析后的字典
    print(data)
    
  • jsonrepair:轻量级修复库,支持多种JSON语法错误的自动修正
    from jsonrepair import repair_json
    import json
    
    fixed_json = repair_json(broken_json)
    data = json.loads(fixed_json)
    
  • demjson:集成lint与修复功能,可输出修复后的合法JSON字符串
    import demjson
    
    data = demjson.decode(broken_json, strict=False)
    fixed_json = demjson.encode(data)
    

三、AI工具端源头优化

从输出环节减少错误,比事后修复更高效:

  • 明确提示词要求:在提问中强制模型输出严格符合RFC 8259标准的JSON,例如:请严格以合法JSON格式返回结果,所有字符串内的双引号必须转义,不得出现语法错误
  • 使用模型结构化输出参数:如OpenAI GPT系列支持response_format={"type": "json_object"},Anthropic Claude支持response_format="json",强制模型输出合法JSON
  • 选用结构化输出模型:部分专门优化过结构化数据生成的模型(如GPT-4 Turbo),能大幅降低JSON语法错误率

内容的提问来源于stack exchange,提问作者ashap551

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:48:29