配列やディクショナリデータのダンプが見易くなる Python用のライブラリ「prettyprinter」の紹介です。
Pythonで変数などの文字列をアウトプットさせる時は ' print
' メソッドを使いますが、 配列やディクショナリのデータ構造を表示させる時には ' pprint
' モジュールを使います。
# pprintを使った例
from pprint import pprint # pprintの読み込み
arr = [ 'arr1', 'arr2', 'arr3', 'arr4' ] # 配列
pprint(arr) # 配列を表示

上の配列ぐらいでは気になることはありませんが、ディクショナリなどでデータ数が多くなってくると、アウトプット時に可視性が悪くなることも少なくありません。
そんなデータ構造を表示させる時に、色付きで 見易くなるPython用のライブラリが「prettyprinter
」です。
prettyprinter
' を使って配列を表示 
- データ構造を フォーマット & 色付きで表示させることが出来る
pprint
' と ' prettyprinter
' の比較 
prettyprinter は ターミナル上から ' pip
' コマンドを使ってインストールします。なお、インストールされている Python のバージョンが ' 3.6.*
' 以上の必要があります。
# prettyprinterのインストール
pip install prettyprinter
prettyprinter の使用法は簡単で、 モジュールを読み ' pprint
' を置き換えるだけで使うことができます。
from prettyprinter import cpprint # prettyprinterのインポート
# from pprint import pprint
# ダンプするディクショナリ
data = {
"id": 1,
"name": "user1",
"created_at": "2017-01-19 03:14:07"
}
# pprint(data)
cpprint(data)# pprintの代わりにprettyprinterを使用
prettyprinter
' を使って、ディクショナリデータのアウトプット 
アウトプットする色のハイライトも ' light
', ' dark
' の二種類が用意されており、Macにデフォルトで用意されているホワイトカラーの ' terminal
'でも、違和感なく使用することができます。
from prettyprinter import cpprint, set_default_style
# output されるシンタックスハイライトを'ライト'テーマにセット
set_default_style("light") # デフォルトは 'dark'
data = {
"id": 1,
"name": "user1",
"created_at": "2017-01-19 03:14:07"
}
cpprint(data)
light
'、下が通常の ' dark
' テーマ 
また、' pprint
' のメソッド名を変えたくない場合でも モジュール読み込み時に ' as
' メソッドを使えば、そのまま使えます。
# pprintの関数名のまま使い場合
from prettyprinter import cpprint as pprint
prettyprinterは IPython でもサポートされており、profileの startup 内 に登録すれば使用する事ができます。
コマンドライン上で下記のコマンドを叩けば、IPython用の起動時に読み込むスタートアップファイルが作成されます。
# /ユーザー名/.ipython/profile_default/startup ファイルが作成されます
touch "`ipython locate profile default`/startup/init_prettyprinter.py"
# エディタが開かれる
vim "`ipython locate profile default`/startup/init_prettyprinter.py"
vim が起動した後、下記のコードを追加します。
from pygments import styles
# ライトテーマ用
from prettyprinter.color import GitHubLightStyle
ipy = get_ipython()
ipy.colors = 'LightBG'
ipy.highlighting_style = GitHubLightStyle
# ダークテーマ用
ipy = get_ipython()
ipy.colors = 'linux'
ipy.highlighting_style = styles.get_style_by_name('monokai')
import prettyprinter
prettyprinter.install_extras(
# 用途によって、下記の要素をコメントアウト
include=[
'ipython',
'attrs',
'django',
],
warn_on_error=True
)


以上が prettyprinter の紹介でした。
ダンプしたデータの可視性が上がるので、Python ' 3.6以上
' を使って開発している人、IPython や Jupyter Notebookを使う人には オススメできるライブラリです。
GitHub : tommikaikkonen/prettyprinter