Prettyprintを使用して辞書を印刷したいのですが、コンソールではなく文字列に印刷したいと思います。この文字列は他の関数に渡されます。
「stream」パラメータを使用してsys.outの代わりにファイルを指定できることはわかっていますが、文字列が必要です。
それ、どうやったら出来るの?
Prettyprintを使用して辞書を印刷したいのですが、コンソールではなく文字列に印刷したいと思います。この文字列は他の関数に渡されます。
「stream」パラメータを使用してsys.outの代わりにファイルを指定できることはわかっていますが、文字列が必要です。
それ、どうやったら出来るの?
pprintモジュールからpformat関数を呼び出すだけです。
import pprint
s = pprint.pformat(aDict)
私は時々そのためにjson
モジュールを使用します:
In [1]: import json
In [2]: d = {'a':1, 'b':2, 'c':{'a':1}}
In [3]: s = json.dumps(d, indent=4)
In [4]: s
Out[4]: '{\n "a": 1, \n "c": {\n "a": 1\n }, \n "b": 2\n}'
In [5]: print s
{
"a": 1,
"c": {
"a": 1
},
"b": 2
}
StringIO
モジュールを使用するだけです:
import StringIO
output = StringIO.StringIO()
output
これで、ストリームとしてに渡すことができますprettyprint
。