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

json.loads()解析含转义字符的错误格式JSON失败求助

处理格式错误的JSON字符串

问题根源

你提供的JSON字符串存在未正确转义的双引号:在targetval字段的值中,:"?里的双引号没有用反斜杠转义,违反了JSON语法规则,导致json.loads()解析失败。

另外你尝试的json.loads(json.dumps(str))无效的原因是:json.dumps(str)只是把Python字符串转换成JSON格式的字符串(给原字符串套双引号并转义内部特殊字符),解析后得到的还是原错误字符串,而非字典,二次解析自然也会失败。

解决方案

方案1:手动修复关键转义错误(适合固定格式的错误)

针对这个特定字符串,找到未转义的双引号并替换为转义后的形式:

import json

# 注意:实际Python中定义该字符串时需要正确转义内部引号
original_str = '{"targetfid":33,"targetval":"~!@#$%^&*,,,,()_+:"?<,,./\';[]\\"","models_dbid":"dbidvalue"}'

# 修复targetval里未转义的双引号
fixed_str = original_str.replace(':"?', ':\\"?')

# 解析修复后的字符串
result = json.loads(fixed_str)
print(result)
# 输出:{'targetfid': 33, 'targetval': '~!@#$%^&*,,,,()_+:"?<,,./\';[]"', 'models_dbid': 'dbidvalue'}

方案2:使用容错JSON解析库(适合复杂/多变的错误格式)

如果错误格式不固定,推荐使用支持宽松解析的第三方库,比如demjson:

  1. 先安装库:
pip install demjson
  1. 用宽松模式解析错误JSON:
import demjson

original_str = '{"targetfid":33,"targetval":"~!@#$%^&*,,,,()_+:"?<,,./\';[]\\"","models_dbid":"dbidvalue"}'

# 启用非严格模式解析,自动修复常见转义错误
result = demjson.decode(original_str, strict=False)
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:07:51