Python中将(字典,列表等)变量格式化成(漂亮的,树形的,带缩进的,JSON方式的)字符串输出:
变量类型是列表,列表中每个值是个字典类型变量。
格式化输出的效果,希望是那种树状结构,带缩进的,而不希望是原始的字符串堆积的那种。
后来经过折腾,找到了一个相对比较省事,且效果比较好的办法。
特此整理如下:
比如原始的List变量的值是这种:
list = [{"yearMonth": {"month": {"string": "November", "value": "11"}, "year": {"string": "2012", "value": "2012"}},"reservedMonthList": ["2", "3", "8", "9", "10", "11", "12", "13", "17", "18", "19", "20", "21", "22", "23"]},{"yearMonth": {"month": {"string": "December", "value": "12"}, "year": {"string": "2012", "value": "2012"}}, "reservedMonthList": ["7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "21", "22", "23", "24", "25", "26", "27", "28", "30", "31"]}]
而想要将其输出为带缩进的,树状的,很漂亮的效果,那么可以通过这样的方法:
?
1
2
3
4
5
|
import
json;
#demoDictList is the value we want format to output
json_list
=
json.dumps(list, indent
=
1
);
|
然后就可以看到打印出来的效果就是我们所期望的,很漂亮的,树状的,带缩进的,JSON方式的,效果了
结果如下:
[
{
"yearMonth": {
"year": {
"string": "2012",
"value": "2012"
},
"month": {
"string": "November",
"value": "11"
}
},
"reservedMonthList": [
"2",
"3",
"8",
"9",
"10",
"11",
"12",
"13",
"17",
"18",
"19",
"20",
"21",
"22",
"23"
]
},
{
"yearMonth": {
"year": {
"string": "2012",
"value": "2012"
},
"month": {
"string": "December",
"value": "12"
}
},
"reservedMonthList": [
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"30",
"31"
]
}
]
print json.loads(json_list
)
[{u'yearMonth': {u'month': {u'string': u'November', u'value': u'11'}, u'year': {u'string': u'2012', u'value': u'2012'}}, u'reservedMonthList': [u'2', u'3', u'8', u'9', u'10', u'11', u'12', u'13', u'17', u'18', u'19', u'20', u'21', u'22', u'23']}, {u'yearMonth': {u'month': {u'string': u'December', u'value': u'12'}, u'year': {u'string': u'2012', u'value': u'2012'}}, u'reservedMonthList': [u'7', u'8', u'9', u'10', u'11', u'12', u'13', u'14', u'15', u'16', u'21', u'22', u'23', u'24', u'25', u'26', u'27', u'28', u'30', u'31']}]