Matthieu Riegler
Matthieu Riegler

Reputation: 55981

PrettyPrint indent/line break each level

PrettyPrint is great, but I came up to the following problem.

I've a structure that print like that :

{ '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'}]}}]}}

I was looking to print each level of depth on a new line (which is obviously not the case here).

Any idea how I could do it ? There does't seem to be an option for that.

PS: Using Python 3.4

Upvotes: 4

Views: 1327

Answers (1)

alecxe
alecxe

Reputation: 474271

You can also use an alternative third-party pprint++:

A drop-in replacement for pprint that's actually pretty

from pprintpp import pprint

data = ... # your dict here

pprint(data)

Prints:

{
    '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'},
                    ],
                },
            },
        ],
    },
}

Upvotes: 8

Related Questions