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

如何仅移除字典值括号前后的单引号以修复失效的JSON格式

问题核心

你当前的字典中NetworkInterfaces对应的值是被单引号包裹的JSON格式字符串,内部双引号被转义,直接序列化会将整个值识别为字符串,导致生成的JSON格式失效。

解决思路

不要手动删引号,容易出错,直接将被包裹的JSON字符串反序列化为Python原生对象,再做整体序列化即可得到合法JSON。

实现代码(Python)

单个指定字段处理

import json

# 原始字典
raw_dict = {
    'NetworkInterfaces': '[{\"AssociatePublicIpAddress\":true,\"DeleteOnTermination\":true,\"Description\":\"Primary network interface\",\"DeviceIndex\":0,\"Groups\":[\"sg-0b60a9f7e75aba4d4\"],\"Ipv6AddressCount\":0,\"Ipv6Addresses\":[],\"NetworkInterfaceId\":\"eni-0538f01e55dda59e8\",\"PrivateIpAddress\":\"172.16.18.79\",\"PrivateIpAddresses\":[{\"Primary\":true,\"PrivateIpAddress\":\"172.16.18.79\"}],\"SecondaryPrivateIpAddressCount\":0,\"SubnetId\":\"subnet-0b2e2d39e5c1a8af9\",\"InterfaceType\":\"interface\"}]'
}

# 将字符串类型的JSON值转为原生列表对象
raw_dict['NetworkInterfaces'] = json.loads(raw_dict['NetworkInterfaces'])

# 输出合法JSON
print(json.dumps(raw_dict, indent=4, ensure_ascii=False))

批量处理所有符合规则的字段

如果存在多个类似的字符串类型JSON值,可以遍历字典批量处理:

for k, v in raw_dict.items():
    if isinstance(v, str):
        # 仅对首尾为数组/对象符号的字符串尝试反序列化
        if (v.startswith(('[', '{')) and v.endswith((']', '}'))):
            try:
                raw_dict[k] = json.loads(v)
            except json.JSONDecodeError:
                # 非合法JSON格式的不处理
                continue
处理后输出的合法JSON
{
    "NetworkInterfaces": [
        {
            "AssociatePublicIpAddress": true,
            "DeleteOnTermination": true,
            "Description": "Primary network interface",
            "DeviceIndex": 0,
            "Groups": [
                "sg-0b60a9f7e75aba4d4"
            ],
            "Ipv6AddressCount": 0,
            "Ipv6Addresses": [],
            "NetworkInterfaceId": "eni-0538f01e55dda59e8",
            "PrivateIpAddress": "172.16.18.79",
            "PrivateIpAddresses": [
                {
                    "Primary": true,
                    "PrivateIpAddress": "172.16.18.79"
                }
            ],
            "SecondaryPrivateIpAddressCount": 0,
            "SubnetId": "subnet-0b2e2d39e5c1a8af9",
            "InterfaceType": "interface"
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:48:02