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

如何将格式异常的JSON字符串转换为Python字典?

解决不合法JSON字符串的解析问题

遇到这种内部双引号未正确转义的JSON字符串确实挺闹心,下面给你两个实用的解决方案:

方法一:正则修复后用标准库解析

问题核心在于字符串值里的双引号没转义,我们可以用正则识别并替换那些不属于JSON结构边界的双引号,把不合法字符串转成标准JSON后再解析。

代码示例:

import re
import json

# 你拿到的不合法JSON字符串
bad_json = '{"ConsignorName": "first part "second part""}'

# 正则替换逻辑:只转义值内部未转义的双引号
# 匹配规则:前面无反斜杠,且后面不是JSON结构符号(:、,、{、})或字符串结尾的双引号
fixed_json = re.sub(r'(?<!\\)"(?!:|,|{|}|$)', r'\\"', bad_json)

# 现在可以正常解析了
parsed_dict = json.loads(fixed_json)
print(parsed_dict)  # 输出: {'ConsignorName': 'first part "second part"'}

这个正则在大多数类似场景下都能生效,如果你的JSON有更复杂的嵌套或特殊字符,可能需要微调正则规则。

方法二:用容错性更强的第三方解析库

要是不想自己折腾字符串修复,直接用支持宽松格式JSON的第三方库就行,比如json5,它能兼容很多不符合严格JSON规范的写法。

步骤如下:

  1. 先安装库:
pip install json5
  1. 解析代码:
import json5

bad_json = '{"ConsignorName": "first part "second part""}'
parsed_dict = json5.loads(bad_json)
print(parsed_dict)  # 同样得到目标字典

json5还支持单引号键值、末尾逗号等不规范写法,特别适合处理这类来自第三方的不标准JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:07:30