跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

怎么在Python中利用Json-Dumps将字典转换为字符串

json.dumps()可将字典转为JSON字符串,需确保数据类型合法;支持indent美化缩进、sort_keys排序、ensure_ascii=False显示中文;不支持日期等类型,需预处理或用default参数自定义序列化。 在 Python 中,用
json.dumps()
把字典转成字符串非常直接,核心是确保字典里的数据类型是 JSON 支持的(比如字符串、数字、列表、字典、布尔值、
None
)。 基础用法:直接转换 只要字典只含合法类型,调用
json.dumps()
就能返回一个格式化的 JSON 字符串:
import json

data = {"name": "张三", "age": 28, "is_student": False, "hobbies": ["读书", "游泳"]} json_str = json.dumps(data) print(json_str)

输出:{"name": "张三", "age": 28, "is_student": false, "hobbies": ["读书", "游泳"]}

让输出更易读:美化缩进 默认输出是紧凑的一行。加
indent
参数可添加缩进,方便调试或保存到文件: 立即学习 “ Python免费学习笔记(深入) ”; 稿定在线PS PS软件网页版 下载
json.dumps(data, indent=2)
→ 用 2 个空格缩进
json.dumps(data, indent=4, sort_keys=True)
→ 还会按键名排序,适合对比或版本控制 处理中文不乱码 默认情况下,中文会被转成 Unicode 转义(如
"\u5f20\u4e09"
)。要显示原始中文,必须加参数
ensure_ascii=False
:
json.dumps({"城市": "上海", "天气": "晴"}, ensure_ascii=False) # 输出:{"城市": "上海", "天气": "晴"}
漏掉这个参数,中文就会变成乱码形式,看起来像一串 \u 开头的字符。 注意不支持的数据类型
json.dumps()
不能直接处理日期、自定义类、集合、字节串等类型。遇到会报
TypeError
。常见解决方式: 日期 → 先转成字符串:
str(datetime.now())
或用
default
参数自定义序列化逻辑 自定义对象 → 在
default
函数里返回其字典表示,例如
lambda obj: obj.__dict__
(需确保属性都可 JSON 序列化) 集合(set)→ 先转成 list:
list(my_set)

相关文章