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

如何为JSON未带双引号的属性名添加双引号以支持json.loads正常解析

报错原因

你当前拿到的字符串不符合JSON语法规范:JSON强制要求所有属性名必须用双引号包裹,而你现有字符串的fruit1/fruit2/fruit3等键名没有双引号,因此json.loads无法正常解析。

解决方法

方案:正则替换补全键名双引号后解析

通过正则匹配所有符合规则的键名,给它们补全双引号,生成标准JSON字符串后即可用json.loads解析:

import re
import json

# 你通过split方法得到的原始字符串
raw_str = '{fruit1:"Apple",fruit2:"Orange",fruit3:"Pear"}'
# 正则匹配{或,后的键名,补全双引号,避免匹配到值内的xxx:格式内容
standard_json_str = re.sub(r'([{,]\s*)(\w+)(\s*:)', r'\1"\2"\3', raw_str)
# 解析为Python字典
food = json.loads(standard_json_str)

print(food['fruit1'])
# 输出:Apple

注意事项

你示例的预期代码中直接对字符串类型的food用键名索引是错误的,字符串仅支持数字索引,必须先解析为Python字典后,才能用键名取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:45:01