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

Python如何将单引号格式字符串转换为带双引号的字典

你的代码存在两个核心问题:

  • 混淆了json模块两个方法的作用:json.dumps()用于将Python对象序列化为JSON字符串,json.loads()才是将符合格式的字符串反序列化为Python对象,你直接对字符串执行json.dumps()会额外套一层编码,产生多余转义符。
  • 变量名书写错误:你将替换后的字符串存在变量b中,却直接对未定义的变量c执行了dumps操作。

推荐方案:使用ast.literal_eval解析(适配性更强、更安全)

该方案不需要提前替换单引号,也兼容取值本身包含单引号的场景:

import json
import ast

source_str = "{'a':'b'}"
# 直接解析为Python字典对象
py_dict = ast.literal_eval(source_str)
# 序列化为标准双引号JSON字符串
result = json.dumps(py_dict, ensure_ascii=False)
print(result) # 输出:{"a":"b"}

替换单引号的修复方案(仅适用于取值不含单引号的场景)

如果你要坚持用替换单引号的思路,修正后的代码如下:

import json

source_str = "{'a':'b'}"
replace_str = source_str.replace("'", "\"")
# 先反序列化为字典
py_dict = json.loads(replace_str)
# 再序列化得到标准格式
result = json.dumps(py_dict, ensure_ascii=False)
print(result) # 输出:{"a":"b"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:27:02