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

如何在Python中解码含嵌套字典字符串的JSON格式数据?

解决方法

问题出在原字符串经Python解析后,实际传递给json.loads的是格式无效的JSON——abc字段的值里的双引号未转义,导致JSON结构断裂。可通过以下步骤修复:

  1. 清理输入字符串,去除前后换行、空格等空白字符;
  2. 修正abc值内的双引号,转义为JSON可识别的格式;
  3. 先解析外层JSON,再解析abc字段对应的内层JSON字符串。

具体代码实现

import json
import re

t1 = """
        {"abc": "{\"version\": \"1\"}"}
     """

# 清理字符串,去除前后空白
clean_t1 = t1.strip()

# 修复值内部的双引号转义问题:匹配abc值内容,将其中的"替换为\"
fixed_t1 = re.sub(r'(?<="abc": ")(.*?)(?=")', lambda m: m.group(0).replace('"', '\\"'), clean_t1)

# 解析外层JSON
outer_dict = json.loads(fixed_t1)

# 解析内层JSON字符串
inner_dict = json.loads(outer_dict["abc"])

print(outer_dict)  # 输出: {'abc': '{"version": "1"}'}
print(inner_dict)  # 输出: {'version': '1'}

针对固定结构的简化写法

如果输入结构固定,也可以直接用字符串替换快速修复:

import json

t1 = """
        {"abc": "{\"version\": \"1\"}"}
     """

clean_t1 = t1.strip()
# 替换值内的引号为转义格式
fixed_t1 = clean_t1.replace('"{', '"{\\"').replace('}"', '\\"}"')

outer_dict = json.loads(fixed_t1)
inner_dict = json.loads(outer_dict["abc"])

print(inner_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:57:39