1. 程式人生 > >python筆記-dumps()與loads()的使用

python筆記-dumps()與loads()的使用

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資料