0

尝试使用打印对象时出现此错误pprint.pprint(object)

我进口from pprint import pprint的......

'function' object has no attribute 'pprint'

我的代码:

output = ', '.join([ pprint.pprint(p) for p in people_list])
    return HttpResponse (output)

我究竟做错了什么?

4

3 回答 3

4

您已经导入了函数对象;离开pprint.参考:

output = ', '.join([pprint(p) for p in people_list])
return HttpResponse (output)

这不会做你想要的,因为它会打印到sys.stdout而不是返回一个漂亮的打印值。使用该pprint模块确实不太适合在 Web 服务器环境中使用。

我会创建一个PrettyPrinter实例并使用它PrettyPrinter.pformat() method来生成输出:

from pprint import PrettyPrinter

pprinter = PrettyPrinter()
output = ', '.join([ pprinter.pformat(p) for p in people_list])

您也可以使用pprint.pformat(),但仅重用单个PrettyPrinter()对象会更有效。

于 2013-09-07T07:14:43.953 回答
2

from pprint import pprint只需从模块中导入pprint函数pprint,然后您正在尝试pprint.pprint对该函数进行操作。

>>> from pprint import pprint
>>> pprint.pprint
Traceback (most recent call last):
    pprint.pprint
AttributeError: 'function' object has no attribute 'pprint'

pprint正常工作:

>>> pprint
<function pprint at 0xb6f40304>

要访问模块PrettyPrinter的其他属性,pprint您只需导入pprint模块:

>>> import pprint
>>> pprint.pprint
<function pprint at 0xb6f40304>
>>> dir(pprint)
['PrettyPrinter', '_StringIO', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_commajoin', '_id', '_len', '_perfcheck', '_recursion', '_safe_repr', '_sorted', '_sys', '_type', 'isreadable', 'isrecursive', 'pformat', 'pprint', 'saferepr', 'warnings']
于 2013-09-07T07:06:46.277 回答
0

如果您已导入 pprint,那么您可以使用 as pprint("")

可以这样导入..... from pprint import pprint

于 2018-08-08T05:35:04.860 回答