39

Prettyprintを使用して辞書を印刷したいのですが、コンソールではなく文字列に印刷したいと思います。この文字列は他の関数に渡されます。

「stream」パラメータを使用してsys.outの代わりにファイルを指定できることはわかっていますが、文字列が必要です。

それ、どうやったら出来るの?

4

3 に答える 3

102

pprintモジュールからpformat関数を呼び出すだけです。

import pprint
s = pprint.pformat(aDict)
于 2013-02-26T09:17:43.167 に答える
9

私は時々そのために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
}
于 2013-02-26T09:25:45.237 に答える
0

StringIOモジュールを使用するだけです:

import StringIO

output = StringIO.StringIO()

outputこれで、ストリームとしてに渡すことができますprettyprint

于 2013-02-26T09:12:11.740 に答える