json dumps的参数理解
2018-01-18 10:15 龙武大帝 阅读(6673) 评论(0) 编辑 收藏 举报import subprocess import json ports = [] res = subprocess.Popen("ls /data/mysql/",shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) b = res.stdout.read().strip() mysql_port = b.split("\n") for p in mysql_port: ports += [{'{#MYSQLPORT}':p}] print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
打印结果: { "data":[ { "{#MYSQLPORT}":"3306" }, { "{#MYSQLPORT}":"3307" }, { "{#MYSQLPORT}":"3308" }, { "{#MYSQLPORT}":"3309" } ] }
Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫pretty-printed json,写几个数字,则前面留几个空格
separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(',',':');这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。
encoding:默认是UTF-8,设置json数据的编码方式。
sort_keys:将数据根据keys的值进行排序。
Decode过程,是把json对象转换成python对象的一个过程,常用的两个函数是loads和load函数。区别跟dump和dumps是一样的。