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數據 


免責聲明!

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



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