Pythonのlistやdictを見やすく出力
Pythonで普通のprint
よりもリストや辞書変数を見やすく出力してくれるpprint
の紹介
自分は主にデバッグ用にしか使用しませんが、大きいリストや辞書変数をprint
で出力すると一行にすべて出力され、非常に見にくくなります。例えば以下のコードで取得したjson形式のレスポンスを表示してみます。
import requests
resp = requests.get(
'https://pypi.org/pypi/sampleproject/json')
print(resp.json())
{'name': 'WP REST API Demo', 'description': 'Just another WP API Demo Sites site', 'url': 'https://demo.wp-api.org', 'home': 'https://demo.wp-api.org', 'gmt_offset': '0', 'timezone_string': '', 'namespaces': ['oembed/1.0', 'workflows/v1', 'broker/v1', 'oauth2', 'wp/v2'], 'authentication': {'oauth1': {'request': 'https://demo.wp-api.org/oauth1/request', 'authorize': 'https://demo.wp-api.org/oauth1/authorize', 'access': 'https://demo.wp-api.org/oauth1/access', 'version': '0.1'}, 'oauth2': {'endpoints': {'authorization': 'https://demo.wp-api.org/wp-login.php?action=oauth2_authorize', 'token': 'https://demo.wp-api.org/wp-json/oauth2/access_token'}, 'grant_types': ['authorization_code', 'implicit']}, 'connect': {'version': 2, 'url': 'https://demo.wp-api.org/wp-login.php?action=oauth2_connect'}, 'broker': 'https://demo.wp-api.org/wp-json/broker/v1/connect'}, 'routes': {'/': {'namespace': '', 'methods': ['GET'], 'endpoints': [{'methods': ['GET'], 'args': {'context': {'required': False, 'default': 'view'}}}], '_links': {'self': 'https://demo.wp-api.org/wp-json/'}}, '/oembed/1.0': {'namespace': 'oembed/1.0', 'methods': ['GET'], 'endpoints': [{'methods': ['GET'], 'args': {'namespace': {'required': False, 'default': 'oembed/1.0'}, 'context': {'required': False, 'default': 'view'}}}], '_links': {'self': 'https://demo.wp-api.org/wp-json/oembed/1.0'}}, '/oembed/1.0/embed': {'namespace': 'oembed/1.0', 'methods': ['GET'], 'endpoints': [{'methods': ['GET'], 'args': {'url': {'required': True}, 'format': {'required': False, 'default': 'json'}, 'maxwidth': {'required': False, 'default': 600}}}], '_links': {'self': 'https://demo.wp-api.org/wp-json/oembed/1.0/embed'}}, '/oembed/1.0/proxy': {'namespace': 'oembed/1.0', 'methods': ['GET'], 'endpoints': [{'methods': ['GET'], 'args': {'url': {'required': True, 'description': 'The URL of the resource for which to fetch oEmbed data.', 'type':
...
これがpprint
を使用すると以下のように出力してくれます
import pprint
import requests
resp = requests.get(
'https://demo.wp-api.org/wp-json')
pprint.pprint(resp.json())
{'_links': {'help': [{'href': 'http://v2.wp-api.org/'}]},
'authentication': {'broker': 'https://demo.wp-api.org/wp-json/broker/v1/connect',
'connect': {'url': 'https://demo.wp-api.org/wp-login.php?action=oauth2_connect',
'version': 2},
'oauth1': {'access': 'https://demo.wp-api.org/oauth1/access',
'authorize': 'https://demo.wp-api.org/oauth1/authorize',
'request': 'https://demo.wp-api.org/oauth1/request',
'version': '0.1'},
'oauth2': {'endpoints': {'authorization': 'https://demo.wp-api.org/wp-login.php?action=oauth2_authorize',
'token': 'https://demo.wp-api.org/wp-json/oauth2/access_token'},
'grant_types': ['authorization_code',
'implicit']}},
'description': 'Just another WP API Demo Sites site',
'gmt_offset': '0',
'home': 'https://demo.wp-api.org',
'name': 'WP REST API Demo',
'namespaces': ['oembed/1.0', 'workflows/v1', 'broker/v1', 'oauth2', 'wp/v2'],
...
だいぶ見やすくなりました。出力する一行の文字数はwidth
引数で変更することが出来ます。(デフォルトは80) (例: pprint.pprint(resp.json(), width=60)
)
最近のコメント