Python3 json模塊之編碼解碼方法講解
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于ECMAScript的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,在接口數(shù)據(jù)開發(fā)和傳輸中非常常用。
Python3中我們利用內(nèi)置模塊json解碼和編碼JSON對(duì)象。json模塊提供了四個(gè)功能:
dumps、dump、loads、load
dumps 把數(shù)據(jù)類型轉(zhuǎn)換成字符串
dump 把數(shù)據(jù)類型轉(zhuǎn)換成字符串并存儲(chǔ)在文件中
loads 把字符串轉(zhuǎn)換成數(shù)據(jù)類型
load 把文件打開從字符串轉(zhuǎn)換成數(shù)據(jù)類型
dumps編碼我們利用 dumps 將Python對(duì)象編碼為 JSON對(duì)象 ,當(dāng)然 dumps 只完成了序列化為str,而 dump 必須傳文件描述符,將序列化的str保存到文件中。
編碼字典
import json odata = {’www’: 1, ’jb51.net’: 2, ’Python3’: 3}jdata = json.dumps(odata)print(jdata)
示例結(jié)果:
{'www': 1, 'jb51.net': 2, 'Python3': 3}
編碼列表
import json ldata = [100, ’Python2’, {’www’: 1, ’jb51.net’: 2, ’Python3’: 3}]jdata = json.dumps(ldata)print(jdata)
示例結(jié)果:
[100, 'Python3', {'www': 1, 'jb51.net': 2, 'Python3': 3}]
編碼字符串
import json sdata = ’Python3’jdata = json.dumps(sdata)print(jdata)
示例結(jié)果:
'Python3'
格式化輸出JSON
將下面的數(shù)組,轉(zhuǎn)化為標(biāo)準(zhǔn)的json格式
import json ldata = [’Python3’, 100, {’www’: 1, ’jb51.net’: 2, ’Python3’: 3}, True]jdata = json.dumps(ldata, sort_keys=True, indent=4)print(jdata)
示例結(jié)果:
[ 'Python3', 100, { 'Python3': 3, 'jb51.net': 2, 'www': 1 }, true]
參數(shù)解析:
sort_keys=True 那么字典的輸出會(huì)以鍵的順序排序
indent=4 表示縮進(jìn)為4,如果 indent 是一個(gè)非負(fù)整數(shù)或者字符串,那么 JSON 數(shù)組元素和對(duì)象成員會(huì)被美化輸出為該值指定的縮進(jìn)等級(jí)。
轉(zhuǎn)換關(guān)系對(duì)照表下面為Python原始類型向JSON對(duì)象的轉(zhuǎn)化對(duì)照表:
Python JSON dict object list, tuple array str, unicode string int, long, float number True true False false None null loads解碼我們利用 loads 用于解碼 JSON對(duì)象 。解碼結(jié)果即與之對(duì)應(yīng)的 Python對(duì)象 類型。當(dāng)然 loads 只完成了反序列化, load 只接收文件描述符,完成讀取文件和反序列化。
比如我們用來解碼上個(gè)示例的數(shù)據(jù)
import json jsondata = ’’’[ 'Python3', 100, { 'Python3': 3, 'jb51.net': 2, 'www': 1 }, true]’’’ldata = json.loads(jsondata)print(type(ldata))print(ldata)
示例結(jié)果:
<class ’list’>
[’Python3’, 100, {’Python3’: 3, ’jb51.net’: 2, ’www’: 1}, True]
可以看到我們成功對(duì)上個(gè)例子中的JSON對(duì)象進(jìn)行了解碼,并且最終的解碼結(jié)果為Python列表對(duì)象類型,符合Python對(duì)象JSON對(duì)象對(duì)照表的結(jié)果。
總結(jié)Python3中的json解析和編碼模塊json使用起來非常簡單, 功能也非常齊全,完全能夠滿足我們?nèi)粘5男枨蟆8嚓P(guān)于Python json模塊解析和編碼的文章請(qǐng)點(diǎn)擊下面的相關(guān)鏈接
相關(guān)文章:
1. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁2. ASP.NET MVC使用JSAjaxFileUploader插件實(shí)現(xiàn)單文件上傳3. 使用ajax跨域調(diào)用springboot框架的api傳輸文件4. 詳解php反序列化5. 解決python logging遇到的坑 日志重復(fù)打印問題6. Android實(shí)現(xiàn)下載進(jìn)度條效果7. PHP數(shù)組操作詳細(xì)解釋8. Java String不可變性實(shí)現(xiàn)原理解析9. Python 實(shí)現(xiàn)自動(dòng)化Excel報(bào)表的步驟10. Python dict的常用方法示例代碼
