在 Python 开发中,打印复杂数据结构(如嵌套字典、多层列表)时,默认的print()函数往往输出为一行,难以快速读取。而pprint模块(Pretty Printer)能让数据以美观、易读的格式呈现,是调试和展示数据的必备工具。本文将通过核心函数、实用案例和避坑指南,带你掌握这个高效输出神器!
01、pprint 核心函数介绍
pprint模块提供了多个函数和类,支持所有可序列化的 Python 数据类型(列表、字典、元组、集合等),但不支持自定义类实例(需手动实现__repr__方法)。
1. pprint.pprint(object, indent=1, width=80, depth=None)
功能:直接打印美化后的数据,支持嵌套结构自动换行和缩进。
主要参数:indent:缩进空格数(默认 1)
width:每行最大宽度(默认 80,超出则换行)
depth:限制递归深度(避免无限嵌套)
2. pprint.pformat(object, indent=1, width=80, depth=None)
功能:返回美化后的字符串,而非直接打印,便于进一步处理(如日志记录)。
3. pprint.PrettyPrinter类
功能:自定义打印机,支持设置全局参数,适合需要重复使用相同格式的场景。
02、常用功能与案例
案例 1:基础美化输出(对比普通 print)
import pprint
# 嵌套字典
data = {
"name": "Alice",
"age": 30,
"hobbies": ["reading", "swimming", "coding", "traveling"],
"contact": {
"email": "alice@example.com",
"phone": {
"home": "123-456-7890",
"mobile": "987-654-3210"
}
}
}
print(f"普通print输出:{data}")
print("pprint输出:")
pprint.pprint(data,indent=4,width=30)输出对比:普通 print 输出会将嵌套结构挤在一行,而pprint自动换行并添加缩进,层次结构一目了然。
案例 2:处理超大嵌套结构(限制深度)
import pprint
# 深度为2时,只展开两层结构
deep_data = {"a": {"b": {"c": {"d": {"e": "五层嵌套"}}}}}
pprint.pprint(deep_data, depth=2)
# 输出:
# {'a': {'b': <...>}} # 深层结构用<...>表示
案例 3:自定义打印机(PrettyPrinter 类)
importpprint
# 创建自定义打印机:缩进4空格,宽度60
printer = pprint.PrettyPrinter(indent=4, width=60)
printer.pprint(data)
案例4:在logging模块中美化日志打印
import pprint
import logging
# 将pprint格式的字符串写入日志
formatted_data = pprint.pformat(data, indent=2)
logging.error("错误:\n%s", formatted_data)03
总结
pprint是Python 开发者的 “数据美颜相机”,可以清晰呈现复杂结构,灵活的参数控制。主要适用场景:
✅ 调试时打印字典、列表等复杂数据
✅ 生成易读的文档或报告
✅ 日志中记录结构化信息
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!