如何将Python shell中的输出格式化为多行?

时间:2017-08-11 00:11:24

标签: python python-3.x shell bpython

在Python Shell和BPython中,我试图使输出自然地分成多行,例如,节点解释器。

这是我的意思的一个例子:

# This is what is currently happening 
# (I'm truncating output, but the response is actually a lot longer than this): 
>>> response.dict
{'status': '200', 'accept-ranges': 'bytes', 'cache-control': 'max-age=604800'}

# Here's what I'd like to happen: 
>>> response.dict 
{'status': '200', 
 'accept-ranges': 'bytes', 
 'cache-control': 'max-age=604800'}

这会使阅读事情变得更容易。有谁知道是否可以在BPython或纯shell中配置它? (或者老实说,任何翻译 - 我都会转向任何让我这样做的人。)

非常感谢!

编辑:谢谢大家的答案!我以前遇到过Pretty Print,并考虑过使用它。我还考虑过使用for循环在自己的行上打印所有内容。这些都不是坏主意,但我希望我可以让翻译自动完成。

2 个答案:

答案 0 :(得分:2)

您可以使用pprint()

rd = {'status': '200', 'accept-ranges': 'bytes', 'cache-control': 'max-age=604800', 'another item': 'another value'}

from pprint import pprint
pprint(rd)

结果:

{'accept-ranges': 'bytes',
 'another item': 'another value',
 'cache-control': 'max-age=604800',
 'status': '200'}

答案 1 :(得分:0)

有几种方法可以做到这一点。您可以使用链接中显示的三引号(“”“)和”\ n“。其他方法也在链接中列为stringl Pythonic way to create a long multi-line string。 如果处理Json对象,您可以使用以下代码,这应该有所帮助。

import json

with open('msgs.json', 'r') as json_file:
    for row in json_file:
        data = json.loads(row)
        print json.dumps(data, sort_keys=True, indent=2, separators=(',', ': '))