如何获取python';s pprint是否返回字符串而不是打印?

如何获取python';s pprint是否返回字符串而不是打印?,python,pretty-print,pprint,Python,Pretty Print,Pprint,换句话说,sprintf与pprint的等价物是什么 模块有一个名为的命令,用于此目的 从文件中: 以字符串形式返回对象的格式化表示形式。缩进 宽度和深度将作为 格式化参数 例如: >>> import pprint >>> people = [ ... {"first": "Brian", "last": "Kernighan"}, ... {"first": "Dennis", "last": "Richie"}, ... ] >&

换句话说,sprintf与pprint的等价物是什么

模块有一个名为的命令,用于此目的

从文件中:

以字符串形式返回对象的格式化表示形式。缩进 宽度和深度将作为 格式化参数

例如:

>>> import pprint
>>> people = [
...     {"first": "Brian", "last": "Kernighan"}, 
...     {"first": "Dennis", "last": "Richie"},
... ]
>>> pprint.pformat(people, indent=4)
"[   {   'first': 'Brian', 'last': 'Kernighan'},\n    {   'first': 'Dennis', 'last': 'Richie'}]"

您正在寻找
pprint.pformat

假设您确实是指来自的
pprint
,那么您需要
pprint.pformat
方法

如果您只是指打印,那么您需要类似这样的内容:

import pprint, StringIO

s = StringIO.StringIO()
pprint.pprint(some_object, s)
print s.getvalue() # displays the string 

从技术上讲,这是唯一“正确”的答案,考虑到代码的标题,它真的很有帮助。作为2021年的旁注,在许多上下文中,将
sort\u dicts=False
添加到
pprint.pformat
的参数中是很有用的,因为这保留了字典的原始顺序。(我认为这个选项只对较新版本的Python有效)。
>>> import pprint
>>> pprint.pformat({'key1':'val1', 'key2':[1,2]})
"{'key1': 'val1', 'key2': [1, 2]}"
>>>