LoginSignup
9
8

More than 5 years have passed since last update.

日本語対応prettyprintメモ(python2.7&3.5 windows7も )

Last updated at Posted at 2014-05-04

辞書型の中が日本語でもちゃんと出力してくれる。かなりありがたい。
複雑な構造の辞書型にも対応してる。

例えば以下な感じで使う。

dic={} #中身は適当に作る
pp(dic) # 単なる出力
a=pp_str(dic) # 結果を変数に受け取る時

下のgithubから入手する。
windowsだとeasy_installで上手く入らなかった。
(エラーはなかったが... 何か作法を忘れたかな?)

prettyprintフォルダの中身2つのファイル
https://github.com/taichino/prettyprint/tree/master/prettyprint
を適当に配置すれば動く。

ubuntuでも動作確認した。
print(pp())とかする筋のよりも楽だと思う。
いろんなppがあって詳しくはないけど...

python3で使う場合
print文を括弧に直して、
pp_str()関数の戻り値のeval以下を単純にorigだけにすると機能した。

が、uコードが入ってると今度は文字化けだった><

追記:

return orig.encode('utf-8').decode('unicode_escape')
で日本語の表示も通りました!
参考:この例だとエンコード・デコードが逆になる。
http://kwatch.houkagoteatime.net/blog/2013/12/07/python-tips/

しらべたら、python3はすでにpprintモジュールが存在してた。
元のpretyprint.pyにインポートして、元のpp関数をpp_などにして、
下記の記述でとりあえず動作するw

だけど、こいつの返り値のtypeは独自クラスなので
調べないと中身が取り出せるのかわからない

import pprint

def pp(obj):
  pprint.pprint(obj)

参考
Pythonで日本語を含んだリストと辞書をpretty printしたい件
http://taichino.com/programming/1599

taichino/prettyprint
https://github.com/taichino/prettyprint

9
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8