'function'对象没有属性'pprint'

时间:2013-09-07 07:04:18

标签: python django

尝试使用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)

我做错了什么?

3 个答案:

答案 0 :(得分: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()对象会更有效。

答案 1 :(得分: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']

答案 2 :(得分:0)

如果已导入pprint,则可以用作pprint(“”)

可以通过这种方式导入..... 从pprint导入pprint