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, 'python': 2, 'Python3': 3}
jdata = json.dumps(odata)
print(jdata)
編碼列表示例結(jié)果:
{"www": 1, "python": 2, "Python3": 3}
import json
ldata = [100, 'Python2', {'www': 1, 'python': 2, 'Python3': 3}]
jdata = json.dumps(ldata)
print(jdata)
示例結(jié)果:
[100, "Python3", {"www": 1, "python": 2, "Python3": 3}]
編碼字符串
import json sdata = 'Python3' jdata = json.dumps(sdata) print(jdata)
示例結(jié)果:
"Python3"
格式化輸出JSON
將下面的數(shù)組,轉(zhuǎn)化為標(biāo)準(zhǔn)的json格式
參數(shù)解析:
import json
ldata = ['Python3', 100, {'www': 1, 'python': 2, 'Python3': 3}, True]
jdata = json.dumps(ldata, sort_keys=True, indent=4)
print(jdata)
示例結(jié)果:
[
"Python3",
100,
{
"Python3": 3,
"python": 2,
"www": 1
},
true
]
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ì)照表:
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
loads解碼
我們利用 loads 用于解碼 JSON對(duì)象 。解碼結(jié)果即與之對(duì)應(yīng)的 Python對(duì)象 類型。當(dāng)然 loads 只完成了反序列化, load 只接收文件描述符,完成讀取文件和反序列化。
比如我們用來解碼上個(gè)示例的數(shù)據(jù)
import json
jsondata = '''
[
"Python3",
100,
{
"Python3": 3,
"python": 2,
"www": 1
},
true
]
'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
可以看到我們成功對(duì)上個(gè)例子中的JSON對(duì)象進(jìn)行了解碼,并且最終的解碼結(jié)果為Python列表對(duì)象類型,符合Python對(duì)象JSON對(duì)象對(duì)照表的結(jié)果。
示例結(jié)果:
<class 'list'>
['Python3', 100, {'Python3': 3, 'python': 2, 'www': 1}, True]
總結(jié)
Python3中的json解析和編碼模塊json使用起來非常簡(jiǎn)單, 功能也非常齊全,完全能夠滿足我們?nèi)粘5男枨蟆?/p>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python的音樂播放器GUI的實(shí)現(xiàn)
本文主要介紹了使用Python的音樂播放器GUI的實(shí)現(xiàn),可以讓您快速輕松地管理和收聽所有音樂文件,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
簡(jiǎn)單示例入門了解Python TkInter框架
這篇文章主要為大家通過簡(jiǎn)單示的示例帶大家入門了解Python TkInter框架,讓大家對(duì)Python TkInter有一個(gè)簡(jiǎn)單的認(rèn)知,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2023-11-11
python中pytest收集用例規(guī)則與運(yùn)行指定用例詳解
這篇文章主要介紹了python中pytest收集用例規(guī)則與運(yùn)行指定用例詳解,天會(huì)講解一下pytest是如何收集我們寫好的用例?我們又有哪些方式來運(yùn)行單個(gè)用例或者批量運(yùn)行用例呢,需要的朋友可以參考下2019-06-06
Python數(shù)據(jù)結(jié)構(gòu)之圖的存儲(chǔ)結(jié)構(gòu)詳解
本篇章主要介紹圖,包括圖的定義、相關(guān)術(shù)語、性質(zhì)及存儲(chǔ)結(jié)構(gòu),并用Python代碼實(shí)現(xiàn),需要的朋友可以參考下2021-06-06
python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除
這篇文章主要介紹了python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
在django中使用apscheduler 執(zhí)行計(jì)劃任務(wù)的實(shí)現(xiàn)方法
這篇文章主要介紹了如何在django中使用apscheduler 執(zhí)行計(jì)劃任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02

