手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Python语言的Human-Readable Print(Pretty Print)

[日期:2013-08-25] 来源:Linux社区  作者:xia7139 [字体: ]

1、XML元素

在xml的解析中,常常需要打印一个xml元素,但是,如果简单的print element_name,将会只得到"<Element Element.tag at 0x7fa140e98410>"这样的输出。显然,这不是我们想要的。利用lxml,也可以非常方便地美观打印xml元素,来显示xml元素的结构。方法如下:

#!/usr/bin/Python
#-*-coding:utf-8-*-
from lxml import etree
print etree.tostring(ELEMENT_NAME,encoding='utf-8',pretty_print=True)

这样就可以看到ELEMENT_NAME元素的结构了。Human-readable。

2、字典dict

有时候,我们想pretty print一个dict,除了自己写一个for循环遍历,python也提供了简单的pprint方法,如下:

import pprint
a={"1":{"NAME":"Alan","VALUE":12,"COLOR":"blue","DATE":"Sep. 25, 2009"},
&nbsp; &nbsp;"2":{"NAME":"Shan","VALUE":13,"COLOR":"green\tblue","DATE":"Sep. 27, 2009"},
&nbsp; &nbsp;"3":{"NAME":"John","VALUE":45,"COLOR":"orange","DATE":"Sep. 29, 2009"},
&nbsp; &nbsp;"4":{"NAME":"Minna","VALUE":27,"COLOR":"teal","DATE":"Sep. 30, 2009"}}
print a
print ""
pprint.pprint(a)

输出结果如下:

{'1': {'COLOR': 'blue', 'DATE': 'Sep. 25, 2009', 'NAME': 'Alan', 'VALUE': 12}, '3': {'COLOR': 'orange', 'DATE': 'Sep. 29, 2009', 'NAME': 'John', 'VALUE': 45}, '2': {'COLOR': 'green\tblue', 'DATE': 'Sep. 27, 2009', 'NAME': 'Shan', 'VALUE': 13}, '4': {'COLOR': 'teal', 'DATE': 'Sep. 30, 2009', 'NAME': 'Minna', 'VALUE': 27}}

{'1': {'COLOR': 'blue', 'DATE': 'Sep. 25, 2009', 'NAME': 'Alan', 'VALUE': 12},
 '2': {'COLOR': 'green\tblue',
      'DATE': 'Sep. 27, 2009',
      'NAME': 'Shan',
      'VALUE': 13},
 '3': {'COLOR': 'orange',
      'DATE': 'Sep. 29, 2009',
      'NAME': 'John',
      'VALUE': 45},
 '4': {'COLOR': 'teal', 'DATE': 'Sep. 30, 2009', 'NAME': 'Minna', 'VALUE': 27}}

pprint和print的区别只有在dict结构比较复杂时才会有明显的区别。

推荐阅读:

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

Python文件处理:读取文件 http://www.linuxidc.com/Linux/2013-08/88496.htm

如何发布自定义的Python模块 http://www.linuxidc.com/Linux/2013-08/88495.htm

Python爬虫多线程抓取代理服务器 http://www.linuxidc.com/Linux/2013-07/87289.htm

linux
相关资讯       Python语言 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款