如何获得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