json dumps的參數理解


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是一樣的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM