2013-10-10 13 views
0

如果我得到一个list对象,并且嵌套dict类型的元素并使用print命令将列表打印出来。输出可能像这样,全部按在一条线上如何漂亮地格式化python对象的输出字符串

[{'rule_range': u'ALL', 'rule_desc': u'\u6d4b\u8bd5\u89c4\u5219\u5b9e\u4f8b01', 'creator': u'65624', 'rule_tmpl_id': u'RT0001', 'order_id': u'1', 'id': 2L, 'def_ext_cols': None, 'rule_cycle': u'1', 'create_time': None, 'rule_expr': u'select * from records where year = 2000', 'def_cols': None, 'rule_status': u'1', 'rule_id': u'TEST0001', 'store': None, 'rule_name': u'TRuleInstance01'}, {'rule_range': u'ALL', 'rule_desc': u'\u6d4b\u8bd5\u89c4\u5219\u5b9e\u4f8b01', 'creator': u'65624', 'rule_tmpl_id': u'RT0001', 'order_id': u'2', 'id': 2L, 'def_ext_cols': None, 'rule_cycle': u'1', 'create_time': None, 'rule_expr': u'select * from records where temperature = 21', 'def_cols': None, 'rule_status': u'1', 'rule_id': u'TEST0001', 'store': None, 'rule_name': u'TRuleInstance01'}] 

我想要的是一些格式化输出字符串,是有某种格式(就像JSON格式在线),或者它可以在Python代码来实现?非常感谢!

回答

0

我试图用漂亮的打印由@justhalf的建议。但是我很难完成这项工作,直到我意识到我的字典太短(少于80个字符,这是默认宽度pprint)。我改变了宽度为20,现在它正确打印:

import pprint 
pprint.pprint([{"test":"value", "test2":"value"},{"test":[{"key":"value"}]}]) 

打印:

[{ 'test': 'value', 'test2': 'value'}, { 'test': [{ 'key': 'value'}]}] 

但:

import pprint 
pprint.pprint([{"test":"value", "test2":"value"},{"test":[{"key":"value"}]}], width=20) 

打印:

[{'test': 'value', 
    'test2': 'value'}, 
{'test': [{'key': 'value'}]}]