百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[其它内容] python使用 pprint 美化输出 [复制链接]
查看:128 | 回复:2

1477

主题

1656

帖子

9

积分

落伍者(一心一意)

Rank: 1

贡献
685
鲜花
0
注册时间
2016-6-22

落伍者落伍微信绑定落伍手机绑定

发表于 2024-9-3 16:16:24 | 显示全部楼层 |阅读模式 来自 中国江苏淮安
华科云商丑图1.jpg
在 Python 编程中,调试和查看数据结构的输出是日常工作的一部分。当处理复杂或嵌套的数据结构时,标准的 `print()` 输出可能难以阅读。为了提高可读性和调试效率,Python 提供了 `pprint` 模块,这个模块专门用于美化打印复杂的数据结构。本文将介绍 `pprint` 的功能及其在实际开发中的应用。

一、什么是 `pprint` 模块?

`pprint` 是 Python 标准库中的一个模块,全称为“pretty-print”。它能够以更加友好的格式打印 Python 对象,特别适合用于展示复杂的、嵌套的字典、列表和其他数据结构。通过自动处理缩进和换行,`pprint` 输出的数据更容易阅读和理解。

二、`pprint` 的基本用法

`pprint` 模块的核心功能是 `pprint.pprint()` 函数,该函数的用法非常简单,类似于 `print()`,但会自动格式化输出的数据。

```python
import pprint

data = {
    'name': 'Alice',
    'age': 30,
    'address': {
        'city': 'Wonderland',
        'zipcode': '12345',
        'coordinates': {
            'latitude': 52.5167,
            'longitude': 13.3833
        }
    },
    'hobbies': ['reading', 'chess', 'gardening']
}

pprint.pprint(data)
```

运行上述代码后,输出将比 `print()` 更加整洁,特别是对于嵌套结构:

```plaintext
{'address': {'city': 'Wonderland',
             'coordinates': {'latitude': 52.5167, 'longitude': 13.3833},
             'zipcode': '12345'},
'age': 30,
'hobbies': ['reading', 'chess', 'gardening'],
'name': 'Alice'}
```

三、`pprint` 模块的高级功能

1. **控制输出宽度**

   `pprint.pprint()` 默认将输出限制在 80 个字符的宽度内。如果你的数据结构非常宽,可能希望增加这个宽度以减少换行次数。可以通过设置 `width` 参数来控制输出的宽度。

   ```python
   pprint.pprint(data, width=60)
   ```

2. **定制缩进**

   可以通过 `indent` 参数来定制嵌套结构的缩进量,以便根据个人喜好或项目规范进行调整。

   ```python
   pprint.pprint(data, indent=2)
   ```

3. **排序输出**

   默认情况下,`pprint` 按键名排序字典中的键。如果希望保留字典的插入顺序,可以将 `sort_dicts` 参数设置为 `False`。

   ```python
   pprint.pprint(data, sort_dicts=False)
   ```

4. **生成格式化字符串**

   如果你需要将格式化后的结果作为字符串保存或进一步处理,可以使用 `pprint.pformat()`,它会返回一个格式化后的字符串,而不是直接打印。

   ```python
   formatted_str = pprint.pformat(data)
   print(formatted_str)
   ```

四、应用场景

1. **调试复杂数据结构**

   当调试嵌套的数据结构(如 API 响应、配置文件等)时,使用 `pprint` 可以快速查看数据的结构和内容,方便发现问题。

2. **日志记录**

   在日志中记录复杂的对象或配置时,使用 `pprint` 的格式化输出可以提高日志的可读性,特别是在需要审查日志文件时。

3. **输出报告**

   在生成数据报告或文档时,`pprint` 可以用于美化输出,确保读者能够轻松理解数据的层次结构和内容。

Python 的 `pprint` 模块是处理复杂数据结构时的得力工具。它不仅提高了输出的可读性,还为调试和日志记录提供了更清晰的展示方式。在日常开发中,掌握并善用 `pprint`,将大大提升代码的调试效率和输出的美观度。
企业专线拨号VPS动态IP派克斯ADSL本地拨号,联系QQ174629754
回复

使用道具 举报

1294

主题

3350

帖子

107

积分

落伍者(一心一意)

Rank: 1

贡献
405
鲜花
0
注册时间
2022-1-11

落伍微信绑定落伍者

发表于 2024-9-4 10:46:51 | 显示全部楼层 来自 中国浙江杭州
车铣复合机床 [url]https://cxfh.jc35.com/[/url]
防护罩        [url]https://fanghuzhao.jc35.com/[/url]
外圆磨床 [url]https://wymc.jc35.com/[/url]
加工中心 [url]https://jgzx.jc35.com/[/url]
走心机        [url]https://zouxinji.jc35.com/[/url]
回复 支持 反对

使用道具 举报

372

主题

1万

帖子

647

积分

落伍者(一心一意)

Rank: 1

贡献
2388
鲜花
0
注册时间
2020-6-17

落伍手机绑定落伍者

发表于 2024-9-6 10:54:30 | 显示全部楼层 来自 中国河南许昌
愿收录[url=http://www.ytllck.com/news/gongsi/]超声波流量计[/url]
[url=http://www.ytllck.com/products/]流量计厂家[/url]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-25 00:52 , Processed in 0.057826 second(s), 34 queries , Gzip On.

返回顶部