詳解python 3.6 安裝json 模塊(simplejson)
JSON 相關(guān)概念:
序列化(Serialization):將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或可以通過(guò)網(wǎng)絡(luò)傳輸?shù)倪^(guò)程,傳輸?shù)母袷娇梢允荍SON,XML等。反序列化就是從存儲(chǔ)區(qū)域(JSON,XML)讀取反序列化對(duì)象的狀態(tài),重新創(chuàng)建該對(duì)象。
JSON(Java Script Object Notation):一種輕量級(jí)數(shù)據(jù)交互格式,相對(duì)于XML而言更簡(jiǎn)單,也易于閱讀和編寫,機(jī)器也方便解析和生成,Json是JavaScript中的一個(gè)子集。
python2.6版本開(kāi)始加入了JSON模塊,python的json模塊序列化與反序列化的過(guò)程分別是encoding和decoding。
- encoding:把一個(gè)python對(duì)象編碼轉(zhuǎn)換成Json字符串。
- decoding:把json格式字符串編碼轉(zhuǎn)換成python對(duì)象。
具體應(yīng)用:
json提供四個(gè)功能:dumps, dump, loads, load
dumps功能 :將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換為所有程序語(yǔ)言都認(rèn)識(shí)的字符串
>>> import simplejson >>> data =['aa','bb','cc'] >>> j_str = simplejsondumps(data) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'simplejsondumps' is not defined >>> j_str = simplejson.dumps(data) >>> j_str '["aa", "bb", "cc"]'
loads功能 : 將json編碼的字符串再轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)
>>> mes = simplejson.load(j_str) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\Program Files\python\lib\site-packages\simplejson\__init__.py", line 455, in load return loads(fp.read(), AttributeError: 'str' object has no attribute 'read' >>> mes = simplejson.loads(j_str) >>> mes ['aa', 'bb', 'cc']
# dump功能
# 將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換為所有程序語(yǔ)言都認(rèn)識(shí)的字符串,并寫入文件
with open('D:/tmp.json', 'w') as f:
simplejson.dump(data, f)
# load功能
# 從數(shù)據(jù)文件中讀取數(shù)據(jù),并將json編碼的字符串轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)
with open('D:/tmp.json', 'r') as f:
data = simplejson.load(f)
json編碼支持的基本類型有:None, bool, int, float, string, list, tuple, dict.
對(duì)于字典,json會(huì)假設(shè)key是字符串(字典中的任何非字符串key都會(huì)在編碼時(shí)轉(zhuǎn)換為字符串),要符合JSON規(guī)范,應(yīng)該只對(duì)python列表和字典進(jìn)行編碼。此外,在WEB應(yīng)用中,把最頂層對(duì)象定義為字典是一種標(biāo)準(zhǔn)做法。
json編碼的格式幾乎和python語(yǔ)法一致,略有不同的是:True會(huì)被映射為true,False會(huì)被映射為false,None會(huì)被映射為null,元組()會(huì)被映射為列表[],因?yàn)槠渌Z(yǔ)言沒(méi)有元組的概念,只有數(shù)組,也就是列表。
>>> import simplejson
>>> data = {'a':True, 'b':False, 'c':None, 'd':(1,2), 1:'abc'}
>>> j_str = simplejson.dumps(data)
>>> j_str
'{"a": true, "c": null, "d": [1, 2], "b": false, "1": "abc"}'
Simpeljson 模塊安裝
開(kāi)發(fā)環(huán)境:windows10、Python3.5、DJango1.11.1
第一步:首先,下載對(duì)應(yīng)simplejson的 .whl文件,下載地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#simplejson
第二步:打開(kāi)cmd,進(jìn)入到Python安裝目錄的Scripts文件夾中.比如:D:\Program Files\Python\Scripts。使用pip安裝剛剛下載好的whl文件,pip.exe install *.whl,例如:
D:\Program Files\python\Scripts>pip.exe install D:\python\simplejson-3.10.0-cp36-cp36m-win_amd64.whl
Processing d:\python\simplejson-3.10.0-cp36-cp36m-win_amd64.whl
Installing collected packages: simplejson
Successfully installed simplejson-3.10.0
提示安裝成功后,在\Python\Lib\site-packages目錄下可以看到simplejson.
以上所述是小編給大家介紹的python 3.6 安裝json 模塊(simplejson)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框
這篇文章主要介紹了python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
pandas數(shù)據(jù)處理之繪圖的實(shí)現(xiàn)
這篇文章主要介紹了pandas數(shù)據(jù)處理之繪圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
python接口自動(dòng)化(十七)--Json 數(shù)據(jù)處理---一次爬坑記(詳解)
這篇文章主要介紹了python Json 數(shù)據(jù)處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Python實(shí)現(xiàn)擴(kuò)展內(nèi)置類型的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)擴(kuò)展內(nèi)置類型的方法,結(jié)合實(shí)例形式分析了Python嵌入內(nèi)置類型擴(kuò)展及子類方式擴(kuò)展的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10
用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機(jī)
大家好,本篇文章主要講的是用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機(jī),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01

