Как сохранить результат функции pprint в переменную?
Использую следующий код:
from pprint import pprint
a = {'fields' : [1 ,2 ,3 ,4]}
b = {'items' : [['a', 's', 'd', 'f'], ['s', 'a', 'd', 'f'], ['d', 's' ,'f', 'a']]}
a_and_b = [dict(zip(a['fields'], x)) for x in b['items']]
pprint (a_and_b, width=1)
На выходе получаю:
[{1: 'a',
2: 's',
3: 'd',
4: 'f'},
{1: 's',
2: 'a',
3: 'd',
4: 'f'},
{1: 'd',
2: 's',
3: 'f',
4: 'a'}]
Все классно и здорово, но как мне сохранить результат функции pprint в переменную? (в файл очень не хотелось бы)
Если сделать следующее:
q = pprint(a_and_b, width=1)
функция отрабатывает и выводит данные в консоль (хотя по сути мне вывод в консоль не требуется, интересует только приведение результата в читаемый вид), но в дальнейшем q = None
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Вместо функции pprint используйте pformat:
from pprint import pformat
...
q = pformat(a_and_b, width=1)
print(q)
Я бы предложил еще вариант отобразить в json:
import json
...
print(json.dumps(a_and_b, indent=4, ensure_ascii=False))