如何获得python的pprint返回一个string,而不是打印?

换句话说,什么是sprintf相当于pprint?

为了这个目的, pprint模块有一个名为pformat的命令。

从文档:

以stringforms返回对象的格式化表示。 缩进,宽度和深度将作为格式化parameter passing给PrettyPrinter构造函数。

例:

>>> 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.pformat方法。

如果你只是print ,那么你想str()

 >>> import pprint >>> pprint.pformat({'key1':'val1', 'key2':[1,2]}) "{'key1': 'val1', 'key2': [1, 2]}" >>> 

你在找pprint.pformat吗?

像这样的东西:

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