辞書型等の階層構造をpythonで標準出力する時に便利な設定

こんにちは。hacknoteのr.katoです。

今回は、以下の様な階層構造の辞書等をpythonで標準出力する際に、使うと読みやすくなる設定を紹介していきます。

hoge = {
    'Reservations': [
        {
            'Groups': [
                {
                    'GroupName': 'string',
                    'GroupId': 'string'
                },
            ],
            'Instances': [
                {
                    'AmiLaunchIndex': 123,
                    'ImageId': 'string',
                    'InstanceId': 'string'
                }
            ]
         }
     ]
}

↑こんな、構造の文字列を1行で表示された日にはたまったもんじゃないです…

方法

pprintというpythonに最初から入っている標準ライブラリを使用します。
プログラムの最初の方に次の2行を記入しておきます。

import pprint
pp = pprint.PrettyPrinter(indent=4)

この様にしておくことで、 pp.print(hoge) とすれば次の様に表示してくれます。

{   'Reservations': [   {   'Groups': [   {   'GroupId': 'string',
                                              'GroupName': 'string'}],
                            'Instances': [   {   'AmiLaunchIndex': 123,
                                                 'ImageId': 'string',
                                                 'InstanceId': 'string'}]}]}

これで、かなり読みやすくなるのではないでしょうか。

全体図

import pprint
pp = pprint.PrettyPrinter(indent=4)

hoge = {
    'Reservations': [
        {
            'Groups': [
                {
                    'GroupName': 'string',
                    'GroupId': 'string'
                },
            ],
            'Instances': [
                {
                    'AmiLaunchIndex': 123,
                    'ImageId': 'string',
                    'InstanceId': 'string'
                }
            ]
         }
     ]
}

pp.pprint(hoge)