漂亮打印每个级别的缩进/换行

4 投票
1 回答
1005 浏览
提问于 2025-04-20 13:03

PrettyPrint 很好用,但我遇到了一个问题。

我有一个结构,打印出来是这样的:

{ 'table': { 'tr': [ { 'tr': { 'td': [ {'td': 'Period'},
                                       {'td': 'G-A:B '},
                                       {'td': 'SA -A:B '},
                                       {'td': 'PIM-A:B  '},
                                       {'td': 'PP-A:B '},
                                       {'td': 'SH-A:B'}]}},
                     { 'tr': { 'td': [ {'td': '1'},
                                       {'td': '2:2'},
                                       {'td': '14:10'},
                                       {'td': '4:8'},
                                       {'td': '1:1'},
                                       {'td': '0:0'}]}},
                     { 'tr': { 'td': [ {'td': '2'},
                                       {'td': '2:2'},
                                       {'td': '13:11'},
                                       {'td': '37:27'},
                                       {'td': '0:0'},
                                       {'td': '0:0'}]}},
                     { 'tr': { 'td': [ {'td': '3'},
                                       {'td': '0:1'},
                                       {'td': '11:13'},
                                       {'td': '0:8'},
                                       {'td': '0:0'},
                                       {'td': '0:0'}]}},
                     { 'tr': { 'td': [ {'td': 'TOTAL'},
                                       {'td': '4:5'},
                                       {'td': '38:34'},
                                       {'td': '41:43'},
                                       {'td': '1:1'},
                                       {'td': '0:0'}]}},
                     { 'tr': { 'td': [ {'td': '\xa0'},
                                       {'td': '\xa0'},
                                       {'td': '\xa0'},
                                       {'td': '\xa0'},
                                       {'td': '\xa0'},
                                       {'td': '\xa0'}]}}]}}

我想把每一层的内容都打印在新的一行上(显然现在不是这样)。

有没有什么办法可以做到这一点?看起来没有这个选项。

附注:我在用 Python 3.4。

1 个回答

8

你还可以使用一个叫做 pprint++ 的第三方工具:

它是一个可以直接替代 pprint 的工具,而且看起来更漂亮。

from pprintpp import pprint

data = ... # your dict here

pprint(data)

输出结果:

{
    'table': {
        'tr': [
            {
                'tr': {
                    'td': [
                        {'td': 'Period'},
                        {'td': 'G-A:B '},
                        {'td': 'SA -A:B '},
                        {'td': 'PIM-A:B  '},
                        {'td': 'PP-A:B '},
                        {'td': 'SH-A:B'},
                    ],
                },
            },
            {
                'tr': {
                    'td': [
                        {'td': '1'},
                        {'td': '2:2'},
                        {'td': '14:10'},
                        {'td': '4:8'},
                        {'td': '1:1'},
                        {'td': '0:0'},
                    ],
                },
            },
            {
                'tr': {
                    'td': [
                        {'td': '2'},
                        {'td': '2:2'},
                        {'td': '13:11'},
                        {'td': '37:27'},
                        {'td': '0:0'},
                        {'td': '0:0'},
                    ],
                },
            },
            {
                'tr': {
                    'td': [
                        {'td': '3'},
                        {'td': '0:1'},
                        {'td': '11:13'},
                        {'td': '0:8'},
                        {'td': '0:0'},
                        {'td': '0:0'},
                    ],
                },
            },
            {
                'tr': {
                    'td': [
                        {'td': 'TOTAL'},
                        {'td': '4:5'},
                        {'td': '38:34'},
                        {'td': '41:43'},
                        {'td': '1:1'},
                        {'td': '0:0'},
                    ],
                },
            },
            {
                'tr': {
                    'td': [
                        {'td': '\xa0'},
                        {'td': '\xa0'},
                        {'td': '\xa0'},
                        {'td': '\xa0'},
                        {'td': '\xa0'},
                        {'td': '\xa0'},
                    ],
                },
            },
        ],
    },
}

撰写回答