尝试使用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)
我做错了什么?
答案 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