如何在Python中将JSON转换为带双引号的字典?
问题本质说明
你看到的单引号、双引号差异只是Python字典对象的默认输出格式和JSON标准格式的展示差异,数据本身没有错误:
- Python原生dict在打印/输出时,默认用单引号包裹字符串类型的键和值
- 符合JSON标准的格式要求必须用双引号包裹字符串
实现方案
场景1:需要输出/保存为符合JSON标准的带双引号内容
你代码里的j2 = json.dumps(j1)已经是你要的带双引号的字符串结果,直接使用j2即可。如果需要格式化缩进输出,可以加参数调整:
import json # 建议用with语句自动管理文件句柄,无需手动close with open("你的文件路径", "r", encoding="utf-8") as f: j1 = json.load(f) # indent设置缩进空格数,ensure_ascii=False避免中文乱码 json_str = json.dumps(j1, indent=4, ensure_ascii=False) print(json_str) # 如果要保存到文件,也可以直接用json.dump一步完成 with open("输出路径.json", "w", encoding="utf-8") as f: json.dump(j1, f, indent=4, ensure_ascii=False)
输出结果就是你需要的双引号格式:
{ "company": [ { "name": "My company", "security": "WPA2-PSK" } ], "name": "one name" }
场景2:仅需要Python打印字典时显示双引号
如果你只是希望在Python交互环境/日志里打印字典时显示双引号,直接把字典用json.dumps包裹后打印即可,不需要修改字典本身的内容:
j3 = json.loads(json_str) print(json.dumps(j3, indent=4))
注意事项
如果你的代码后续还需要对数据做增删改查操作,直接使用json.load得到的Python字典对象即可,单双引号的展示差异完全不会影响字典的正常使用,只有当你需要输出JSON格式的文本给外部系统/文件时,才需要调用json.dumps做序列化。
内容的提问来源于stack exchange,提问作者Beto
相关产品推荐
相关产品推荐

