json.dumps是將一個Python數據類型列表進行json格式的編碼解析,
示例如下:
>>> import json #導入python 中的json模塊 >>> l = [‘iplaypython’,[1,2,3], {‘name’:’xiaoming’}] #創建一個l列表 >>> encoded_json = json.dumps(l) # 將l列表,進行json格式化編碼 >>> print repr(l) >>> print encoded_json #輸出結果
這樣我們就將一個list列表對象,進行了json格式的編碼轉換。
在使用json.dumps時要注意一個問題
>>> import json >>> print json.dumps('中國') "\u4e2d\u56fd"
輸出的會是'中國' 中的ascii 字符碼,而不是真正的中文。這是因為json.dumps 序列化時對中文默認使用的ascii編碼.想輸出真正的中文需要指定ensure_ascii=False:
>>> import json >>> print json.dumps('中國') "\u4e2d\u56fd" >>> print json.dumps('中國',ensure_ascii=False) "中國"
json.dumps()函數有多個參數:indent參數用於表示美化格式輸出時的縮進占位個數,ensure_ascii參數默認為True,這樣utf-8格式的非ASCII編碼內容會被翻譯成ASCII編碼輸出,要想得到字符的真實表示,需要將這個參數設置為False。其他參數還有:skipkeys,separators,sort_keys等。
解碼python json格式,可以用這個模塊的json.loads()函數的解析方法,
示例如下:
>>> decode_json = json.loads(encoded_json) >>> print type(decode_json) #查看一下解碼后的對象類型 >>> print decode_json #輸出結果
將python json格式解碼成Python數據風格
json.dump和json.dumps很不同,json.dump主要用來json文件讀寫,和json.load函數配合使用。
json.dump(x,f),x是對象,f是一個文件對象,這個方法可以將json字符串寫入到文本文件中。
import json data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True] data2 = json.dumps(data) print(data2) f = open('./tt.txt','a') json.dump(data2,f)
這樣就生成了一個tt.txt文件,保存了json格式的數據。dumps還提供pritty print,格式化的輸出。
json.load加載json格式文件 下面是從txt文件中讀取了json數據。
f = open('./tt.txt','r') hehe = json.load(f) print(hehe)
總結:
json.dumps : dict轉成str json.dump是將python數據保存成json
json.loads:str轉成dict json.load是讀取json數據