安装
pip install pprint
pprint提供了以一种“pretty-print”的方式打印出任意python数据结构的模块。当然,如果不是python的基本数据类型,那么这种方式可能加载不出来。简单来讲,就是一种打印方式。
如果可以的话,将对象保留在一行上,如果宽度不合适,那么将它们分成多行。 需要调整宽度的话,构建PrettyPrinter对象。
class PrettyPrinter:
def __init__(self, indent=1, width=80, depth=None, stream=None, *,
compact=False):
打印的深度,这个主要是针对一些可递归的对象,如果超出指定depth,其余的用"…"代替。 eg: a=[1,2,[3,4,],5] a的深度就是2; b=[1,2,[3,4,[5,6]],7,8] b的深度就是3
pprint.pformat(object,indent=1,width=80, depth=None)
返回格式化的对象字符串
pprint.pprint(object,stream=None,indent=1, width=80, depth=None)
输出格式的对象字符串到指定的stream,最后以换行符结束。
pprint.isreadable(object)
判断对象object的字符串对象是否可读
pprint.isrecursive(object)
判断对象是否需要递归的表示
eg: pprint.isrecursive(a) --->False
pprint.isrecursive([1,2,3])-->True
pprint.saferepr(object)
返回一个对象字符串,对象中的子对象如果是可递归的,都被替换成.这种形式。
>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff[:])
>>> pp = pprint.PrettyPrinter() #采用默认值
>>> pp.pprint(stuff)
[['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
'spam',
'eggs',
'lumberjack',
'knights',
'ni']
>>> pp = pprint.PrettyPrinter(indent=4) #缩进为4
>>> 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) #深度为6,所有只显示了6层
>>> pp.pprint(tup)('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))
#2、格式化
data = [(1,{'a':'A','b':'B','c':'C','d':'D'}),(2,{'e':'E','f':'F','g':'G','h':'H','i':'I','j':'J','k':'K','l':'L'}),]
result=pprint.pformat(data)
for key in result.splitlines():
print key
'''
[(1, {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}),
(2,
{'e': 'E',
'f': 'F',
'g': 'G',
'h': 'H',
'i': 'I',
'j': 'J',
'k': 'K',
'l': 'L'})]
'''
还有一些其他方法,可以参考官方文档说明: https://docs.python.org/2/library/pprint.html#module-pprint
参考:https://blog.csdn.net/Lisa_Ren_123/article/details/80206898 https://www.cnblogs.com/linwenbin/p/10777736.html https://www.zhangshengrong.com/p/q0Xpqgb61K/