Ответ 1
Просто используйте модуль StringIO
:
import StringIO
output = StringIO.StringIO()
Теперь вы можете передавать output
в виде потока в prettyprint
.
Я хотел бы использовать prettyprint для печати словаря, но в строку, а не для консоли. Эта строка должна быть передана другим функциям.
Я знаю, что могу использовать параметр "stream", чтобы указать файл вместо sys.out, но я хочу строку.
Как мне это сделать?
Просто используйте модуль StringIO
:
import StringIO
output = StringIO.StringIO()
Теперь вы можете передавать output
в виде потока в prettyprint
.
Вы должны просто вызвать функцию pformat из модуля pprint:
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
}