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

调用request.get(...).json()时如何处理HTML转义字符引发的JSON解码错误?

解决第三方API返回JSON含未转义引号导致的JSONDecodeError

问题根源:第三方返回的JSON格式不合法——字符串值内部的双引号(如HTML属性中的")未正确转义,导致JSON解析器误判字符串结束位置,抛出JSONDecodeError: Expecting ',' delimiter错误。

以下是两种可行的处理方案:

方案1:手动修复响应文本的转义问题

先获取原始响应文本,修正其中未转义的双引号后再解析:

import requests
import json
import re

response = requests.get("第三方API地址")
# 获取未解析的原始响应文本
response_text = response.text

# 针对HTML转义后的标签(如&lt;代替<),修复属性内的未转义引号
fixed_text = re.sub(r'(?<=&lt;[^&]+=")([^"]+)', lambda match: match.group(0).replace('"', '\\"'), response_text)

# 解析修复后的合法JSON
data = json.loads(fixed_text)

如果问题仅集中在xmlns属性的引号,可使用更精准的替换:

fixed_text = response_text.replace('xmlns="', 'xmlns=\\"')

方案2:使用宽松的JSON解析库

若不想手动处理转义,可使用支持不严格JSON语法的库(如demjson),自动兼容未正确转义的字符:

  1. 安装依赖库:
pip install demjson
  1. 解析代码:
import requests
import demjson

response = requests.get("第三方API地址")
# 直接解析原始响应文本,无需手动修复
data = demjson.decode(response.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:40:17