2013-11-24 220 views
31

我试图得到一本字典的一个漂亮的打印,但我有没有运气:蟒蛇pprint字典

>>> import pprint 
>>> a = {'first': 123, 'second': 456, 'third': {1:1, 2:2}} 
>>> pprint.pprint(a) 
{'first': 123, 'second': 456, 'third': {1: 1, 2: 2}} 

我想要的输出为多条线路上,这样的事情:

{'first': 123, 
'second': 456, 
'third': {1: 1, 
      2: 2} 
} 

可以pprint做到这一点吗?如果不是那么哪个模块呢?我使用python 2.7.3

回答

47

使用width=1width=-1

In [33]: pprint.pprint(a, width=1) 
{'first': 123, 
'second': 456, 
'third': {1: 1, 
      2: 2}} 
+1

负宽度做什么? – Tim

+0

@Tim:我只是试过了,它工作,但我不知道是否记录在某处。 –

+0

负宽度不会做任何特殊的事情。随着代码的发展,它会检查部分输出字符串的长度是否为“

16

如果你想打印这个环境变量,使用:

pprint.pprint(dict(os.environ), width=1) 
3

您可以在字典转换为json通过json.dumps(d, indent=4)

print(json.dumps(item, indent=4)) 
{ 
    "second": 456, 
    "third": { 
     "1": 1, 
     "2": 2 
    }, 
    "first": 123 
}