python标准模块pprint打印json字符串

概述
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小工具在这里插入图片描述

发布了5 篇原创文章 · 获赞 1 · 访问量 103

猜你喜欢

转载自blog.csdn.net/weixin_45144170/article/details/104146511