python:pprint --- 数据美化输出

pprint 模块提供了“美化打印”任意 Python 数据结构的功能,这种美化形式可用作对解释器的输入。 如果经格式化的结构包含非基本 Python 类型的对象,则其美化形式可能无法被加载。 包含文件、套接字或类对象,以及许多其他不能用 Python 字面值来表示的对象都有可能导致这样的结果。

格式化后的形式会在可能的情况下以单行来表示对象,并在无法在允许宽度内容纳对象的情况下将其分为多行。 如果你需要调整宽度限制则应显式地构造 PrettyPrinter 对象。

字典在计算其显示形式前会先根据键来排序。

在 3.9 版更改: 添加了对美化打印 types.SimpleNamespace 的支持。

在 3.10 版更改: 添加了对美化打印 dataclasses.dataclass 的支持。

pprint 模块定义了一个类:

class pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False, sort_dicts=True, underscore_numbers=False)
构造一个 PrettyPrinter 实例。 这个构造器支持一些关键字形参。

stream (default sys.stdout) is a file-like object to which the output will be written by calling its write() method. If both stream and sys.stdout are None, then pprint() silently returns.

其他值可用来配置复杂数据结构嵌套要以何种形式被展示。

indent (默认为 1) 指定要为每个缩进层级添加的缩进量。

depth 控制可被打印的缩进层级数量;如果要打印的数据结构层级过深,则其所包含的下一层级将用 … 替换。 默认情况下,对于被格式化对象的层级深度没有任何限制。

width (默认为 80) 指定输出中每行所允许的最大字符数。 如果一个数据结构无法在宽度限制之内被格式化,将显示尽可能多的内容。

compact 影响长序列(列表、元组、集合等等)的格式化方式。 如果 compact 为假值(默认)则序列的每一项将格式化为单独的行。 如果 compact 为真值,则每个输出行格式化时将在 width 的限制之内尽可能地容纳多个条目。

如果 sort_dicts 为真值(默认),字典在格式化时将基于键进行排序,否则它们将按插入顺序显示。

如果 underscore_numbers 为真值,整数在格式化时将使用 _ 字符作为千位分隔符,否则不显示下划线(默认)。

在 3.4 版更改: 增加了 compact 形参。

在 3.8 版更改: 增加了 sort_dicts 形参。

在 3.10 版更改: 添加了 underscore_numbers 形参。

在 3.11 版更改: No longer attempts to write to sys.stdout if it is None.

>>>
import pprint
stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
stuff.insert(0, stuff[:])
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(stuff)
[   ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],'spam','eggs','lumberjack','knights','ni']
pp = pprint.PrettyPrinter(width=41, compact=True)
pp.pprint(stuff)
[['spam', 'eggs', 'lumberjack','knights', 'ni'],'spam', 'eggs', 'lumberjack', 'knights','ni']
tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',
('parrot', ('fresh fruit',))))))))
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(tup)
('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))
pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)¶

将对象的格式化表示形式返回为字符串。indent、width、depth、compact、sort_dirts和underscore_numbers作为格式参数传递给PrettyPrinter构造函数,其含义如上述文档所述。
pprint.pp(object, *args, sort_dicts=False, **kwargs)
打印 object 的格式化表示并附带一个换行符。 如果 sort_dicts 为假值(默认),字典将按键的插入顺序显示,否则将按字典键排序。 args 和 kwargs 将作为格式化形参被传给 pprint()。

3.8 新版功能.

pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)¶

打印流中对象的格式化表示,后跟换行符。如果流为None,则使用sys.stdout。这可以在交互式解释器中使用,而不是用于检查值的print()函数(您甚至可以重新指定print=pprint.print以在范围内使用)。

配置参数stream、indent、width、depth、compact、sort_dirts和underscore_numbers传递给PrettyPrinter构造函数,其含义如上述文档所述。

import pprint
stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
stuff.insert(0, stuff)
pprint.pprint(stuff)
[<Recursion on list with id=...>,'spam','eggs','lumberjack','knights','ni']
pprint.isreadable(object)

确定 object 的格式化表示是否“可读”,或是否可被用来通过 eval() 重新构建对象的值。 此函数对于递归对象总是返回 False。

>>>
pprint.isreadable(stuff)
False
pprint.isrecursive(object)

确定 object 是否需要递归表示。

此外还定义了一个支持函数:

pprint.saferepr(object)
返回 object 的字符串表示,并为递归数据结构提供保护。 如果 object 的表示形式公开了一个递归条目,该递归引用会被表示为 。 该表示因而不会进行其它格式化。

>>>
pprint.saferepr(stuff)
"[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"

python:pprint --- 数据美化输出相关推荐

  1. 标准库:pprint --- 数据美化输出

    Lib/pprint.py pprint 模块提供了"美化打印"任意 Python 数据结构的功能,这种美化形式可用作对解释器的输入. 如果经格式化的结构包含非基本 Python ...

  2. 在python中数据的输出用哪个函数名_在Python中,数据的输出用哪个函数名

    在Python中,数据的输出用哪个函数名 工业机器人按照坐标形式可以分为().A:圆柱坐标机器人B:球坐标机器人C:直角坐标机器人D:关节坐标机器人 生物膜上脂质主要是磷脂.A:对B:错 再结晶退火主 ...

  3. python prettytable输出对齐_Python 使用 prettytable 库打印表格美化输出功能

    pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...

  4. python美化excel_Python 使用 prettytable 库打印表格美化输出功能

    pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...

  5. python控制台美化输出_python控制台表格美化输出 原

    问题 在Python中想让输出数据使用表美化,像某些数据库命令行工具一样. 过程 使用terminaltables库解决,它接受一个list数据即可. pip3 install terminaltab ...

  6. python 把数据 json格式输出

    有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import jsondate = {u'versions': [{u' ...

  7. python检查数据缺失值,输出变量名和缺失率

    python检查数据缺失值,输出变量名和缺失率 需求背景描述 前同事遇到的一道笔试题,虽然不难,但是觉得可能会遇到,记录一下. 题目为可以分为已知条件和需求: 条件:所有缺失值目前是空或者填充为'空' ...

  8. python 图表美化_你的图表不美观怎么办,Python实现数据可视化帮你实现

    之前突然看到一个用Python实现数据可视化的技术,小编觉得解决了生活中的好多问题,大家一起来看看这个神器.1.主页 首先,这个主页的设计就是我非常喜欢的风格,简单清晰,第一眼就让人有特别清爽的感觉, ...

  9. python获取excel数据进行判断输出结果到excel,如何使用python xlrd/xlwt从一个excel工作簿提取数据并输出到另一个excel工作簿?...

    我正在为xlutils.xlrd和xlwt创建一个名为excel functions的类,最终我可能会创建一个库.如果你有兴趣帮我做一个删除工作表的功能. 您可能希望转向openpyxl和/或pyex ...

最新文章

  1. How to POST JSON data with Curl from Terminal/Commandline to Test Spring REST?
  2. 从一张搞笑图看JavaScript的语法和特性
  3. Apache Shiro Architecture--官方文档
  4. Java中通过substring和charAt截取字符串并获取指定字符
  5. linux——使用fidsk对linux硬盘进行操作【转】
  6. 原生js实现JSON.parse()和JSON.stringify()
  7. vijos 1942 [AH 2005] 小岛
  8. android 单元测试 多线程,单元测试多线程Android RxJava
  9. 用C语言实现SGF格式围棋棋谱解析器
  10. Java访问对象的属性和行为
  11. 文件上传至将File转换成MultiPartFile
  12. 网络流入门题目 - bzoj 1001
  13. 再谈编程范式—程序语言背后的思想
  14. 【操作系统/OS笔记18】虚拟文件系统概念
  15. spring boot初步
  16. python爬取微博内容_python如何抓取新浪微博的微博内容!
  17. 使用scrapy框架爬取链家网站租房信息
  18. 笔记本合上盖子就断网怎么办?
  19. Android 修改系统屏幕亮度
  20. ORACLE查询基本语句

热门文章

  1. 雷军在2012年站长大会上的演讲实录--七字诀:专注\极致\口碑\快
  2. LeetCode 唯一摩尔斯密码词
  3. 【有利可图网】PS实战教程44:添加创意黑白老照片对比效果
  4. 初始解----两阶段的单纯形法
  5. Redis的介绍和使用(NoSQL、Jedis)
  6. android webview监听软键盘弹出和隐藏来修改虚拟导航栏颜色
  7. 计算机毕业设计基于微信小程序的驾校报名系统
  8. iPhone手机屏幕还能这样唤醒,怪不得别人的手机这么好用,学到了
  9. 华为OD机试用Python实现 -【MVP 争夺战】(2023-Q1 新题)
  10. 抖音上测试笑容多少分的什么软件,抖音微笑打分app-抖音微笑打分软件app手机版预约 v1.0-68游戏网...