2013-11-24 55 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 
}