Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

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

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

zaoriku0
言語: java, android, python, perl, php, cakePHP, C#, C , アセンブラ, basic, R, octave, maple, テーマ: テキストマイニング, NLP, 機械学習, MAS, 市場予測, gameプログラミング hatenaアカ: ZAORIKU
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away