90

我试图得到一本漂亮的字典,但我没有运气:

>>> 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

4

4 回答 4

111

使用width=1width=-1

In [33]: pprint.pprint(a, width=1)
{'first': 123,
 'second': 456,
 'third': {1: 1,
           2: 2}}
于 2013-11-24T05:23:33.137 回答
43

您可以通过将 dict 转换为 jsonjson.dumps(d, indent=4)

import json

print(json.dumps(item, indent=4))
{
    "second": 456,
    "third": {
        "1": 1,
        "2": 2
    },
    "first": 123
}
于 2017-10-30T02:37:15.100 回答
28

如果您试图漂亮地打印环境变量,请使用:

pprint.pprint(dict(os.environ), width=1)
于 2014-05-06T14:12:58.197 回答
4

在 Ryan Chou 已经非常有帮助的答案之上添加两件事:

  • 传递sort_keys参数,以便在您的 dict 上更轻松地进行视觉理解,尤其是。如果您使用的是 3.6 之前的 Python(其中的字典是无序的)
print(json.dumps(item, indent=4, sort_keys=True))
"""
{
    "first": 123,
    "second": 456,
    "third": {
        "1": 1,
        "2": 2
    }
}
"""
  • dumps()仅当字典键是原语(字符串、整数等)时才有效
于 2019-03-15T09:43:47.503 回答