概述
pprint主要是对数据结构较复杂或数据较多的对象的显示并不美观,特别适用于打印json结构
pprint方法概览
我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等
indent 缩进
width 宽度
depth 打印深度
stream 指输出流对象,stream = None输出流对象默认是sys.stdout
compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。
pprint.pprint(object, indent = 1,width = 80,depth = None,stream = None,*,compact = False )
1、列表的简单使用
默认行宽是80,超出则缩进(缩进并不是指的是每一行需要超过80个字节才进行缩进,而是当其发现需要打印的字符超过80个字节时,会自行判断数据结构,并采取相应的美化)
(1)未超出80,不进行缩进
import pprint
L = [str(i)*20 for i in range(3)]
pprint.pprint(L, indent=4)
#res
['00000000000000000000', '11111111111111111111', '22222222222222222222']
(2)超出80字节
import pprint
L = [str(i)*20 for i in range(4)]
pprint.pprint(L, indent=4)
res
[ '00000000000000000000',
'11111111111111111111',
'22222222222222222222',
'33333333333333333333']
2、调整width值,并打印字典(通过比较(1)和(2)的结果会发现,此处的width应该理解为超过多少字节就按照pprint定义的格式进行格式化打印,并且dict结构在打印的结果中发现顺序已经变化)
(1)width设为10
import pprint
mydict = {'students': [{'namesss': 'Toms', 'assssge': 19}, {'name': 'lily', 'age': 18}]}
pprint.pprint(mydict, width=10)
res
{'students': [{'assssge': 19,
'namesss': 'Toms'},
{'age': 18,
'name': 'lily'}]}
(2)width设为20
import pprint
mydict = {'students': [{'namesss': 'Toms', 'assssge': 19}, {'name': 'lily', 'age': 18}]}
pprint.pprint(mydict, width=20)
res
{'students': [{'assssge': 19,
'namesss': 'Toms'},
{'age': 18,
'name': 'lily'}]}
(3)width值未超过
import pprint
mydict = {'students': [{'namesss': 'Toms', 'assssge': 19}, {'name': 'lily', 'age': 18}]}
pprint.pprint(mydict, width=1000)
res
{'students': [{'assssge': 19, 'namesss': 'Toms'}, {'age': 18, 'name': 'lily'}]}
哈哈,也可以关注我的微信公众号:python小工具,一起分享python知识,制作日常生活中可以使用的python小工具