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

Python中如何将字符串形式的字典转换为字典类型?

解决HTML转义JSON字符串转Python字典的问题

为什么dict(test)会报错?

dict()函数需要传入键值对序列(比如[(k1, v1), (k2, v2)]这种格式),但你传入的是带HTML转义的JSON格式字符串。直接用dict()处理字符串时,函数会把字符串拆成单个字符遍历,每个字符是长度为1的元素,不符合字典要求的键值对格式,因此触发ValueError。

正确的转换步骤

你的字符串里的"是HTML转义后的双引号,需要先转成普通双引号,再用json模块解析成字典:

方法一:直接替换转义字符

import json

# 你的原始字符串
test = '{"age":59.0,"bp":70.0,"sg":1.01,"al":3.0,"su":0.0,"rbc":1.0,"ba":0.0,"bgr":76.0,"bu":186.0,"sc":15.0,"sod":135.0,"pot":7.6,"hemo":7.1,"pcv":22.0,"wbcc":3800.0,"rbcc":2.1,"htn":1.0,"dm":0.0,"cad":0.0,"appet":0.0,"pe":1.0,"ane":1.0}'

# 替换HTML转义引号为普通双引号
cleaned_str = test.replace('"', '"')
# 解析为字典
result_dict = json.loads(cleaned_str)

# 验证结果
print(type(result_dict))  # 输出 <class 'dict'>
print(result_dict["age"])  # 输出 59.0

方法二:用html模块处理所有HTML转义(更通用)

如果字符串里还有其他HTML转义字符(比如&amp;等),可以用html.unescape()一次性处理所有转义:

import json
import html

test = '{&quot;age&quot;:59.0,...}'  # 你的原始字符串
cleaned_str = html.unescape(test)
result_dict = json.loads(cleaned_str)

内容的提问来源于stack exchange,提问作者Samar Pratap Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:10:32