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

Python中如何为JSON属性添加双引号使其符合JSON解析规范?

原有代码问题

  • 正则语法错误:你使用了JavaScript风格的正则字面量格式,Python re 模块不需要正则前后的/包裹,也不需要末尾的g全局匹配标识,re.sub默认执行全局替换。
  • 替换逻辑错误:原有替换值为空字符串,会直接删除匹配到的属性名,和需求完全相反。
  • 匹配规则不完善:没有考虑属性名和冒号之间可能存在空格,容易出现匹配遗漏。

正确实现代码

import re
import json

var = '''
{
    pzn: "09900426",
    url: "/url.html",
    packageSizeValue: "28",
    packageSizeUnit: "St",
    sizeValue: "",
    potency: ""
}, {
    pzn: "09900432",
    url: "/url2.html",
    packageSizeValue: "84",
    packageSizeUnit: "St",
    sizeValue: "",
    potency: ""
}
'''

# 匹配所有后接冒号的属性名,包裹双引号
formatted_str = re.sub(r'(\w+)(?=\s*:)', r'"\1"', var)
# 如果需要解析为Python对象,补全数组括号即可
data = json.loads(f'[{formatted_str}]')

运行后formatted_str输出符合预期的合法JSON格式:

{
    "pzn": "09900426",
    "url": "/url.html",
    "packageSizeValue": "28",
    "packageSizeUnit": "St",
    "sizeValue": "",
    "potency": ""
}, {
    "pzn": "09900432",
    "url": "/url2.html",
    "packageSizeValue": "84",
    "packageSizeUnit": "St",
    "sizeValue": "",
    "potency": ""
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:48:03