Python是怎樣處理json模塊的
首先,了解下什么是JSON?
JSON:JavaScript Object Notation 【JavaScript 對(duì)象表示法】
JSON 是一種輕量級(jí)的數(shù)據(jù)交換格式,完全獨(dú)立于任何程序語(yǔ)言的文本格式。一般,后臺(tái)應(yīng)用程序?qū)㈨憫?yīng)數(shù)據(jù)封裝成JSON格式返回。
JSON的基本語(yǔ)法如下:JSON名稱/值對(duì)。JSON 數(shù)據(jù)的書寫格式是:名稱/值對(duì)。名稱/值對(duì)包括字段名稱(在雙引號(hào)中),然后著是一個(gè)冒號(hào)(:),最后是值。
JSON最常用的格式是對(duì)象的鍵值對(duì):key只能是string, value可以是 object、array、string、number、true/false、null
{ "sites": [ { "name":"360" , "url":"www.360.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"baidu" , "url":"www.baidu.com" } ] }
- 鍵通過(guò)雙引號(hào)包裹,后面跟冒號(hào)“:”,然后跟該鍵的值;
- 值可以是字符串、數(shù)字、數(shù)組等數(shù)據(jù)類型;
- 對(duì)象與對(duì)象之間用逗號(hào)隔開(kāi);
- “{}”用來(lái)保存對(duì)象;
- “[]”用來(lái)保存數(shù)組;
json跟python中的字典看起來(lái)很像,兩者之間的區(qū)別?
1)json的key只能是字符串,dict的key可以是任何可hash的對(duì)象,例如:字符串、數(shù)字、元組等;
2)字典是一種數(shù)據(jù)結(jié)構(gòu),json是一種數(shù)據(jù)格式;字典有很多內(nèi)置函數(shù),有多種調(diào)用方法,而json是數(shù)據(jù)打包的一種格式,并不像字典具備操作性;
3)json的字符串強(qiáng)制用雙引號(hào),dict的字符串可以用單引號(hào)、雙引號(hào);
一般而言,我們會(huì)把json轉(zhuǎn)化為python中的字典或者列表,再對(duì)其進(jìn)行操作。
Python處理json的模塊:json
Pythone3的標(biāo)準(zhǔn)庫(kù)JSON模塊,可以很方便的幫我們進(jìn)行json數(shù)據(jù)的轉(zhuǎn)換和處理,這里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。
序列化和反序列化:
將對(duì)象轉(zhuǎn)換為可通過(guò)網(wǎng)絡(luò)傳輸或可以存儲(chǔ)到本地磁盤的數(shù)據(jù)格式(如:XML、JSON或特定格式的字節(jié)串)的過(guò)程稱為序列化;反之,則稱為反序列化。
常用的JSON模塊方法:
- json.dumps():將Python中的對(duì)象轉(zhuǎn)換為JSON中的字符串對(duì)象
- json.dump():將python對(duì)象轉(zhuǎn)換成JSON字符串輸出到fp流中。
- json.loads():將JSON中的字符串對(duì)象轉(zhuǎn)換為Python中的對(duì)象
- json.load():讀取包含json對(duì)象的文件。
帶s的都是和字符串相關(guān)的,不帶s的都是和文件相關(guān)的。
實(shí)例:
把字典轉(zhuǎn)換成json串
import json dic = {'name': 'xiaoming', 'age': 29} json_str = json.dumps(dic)#返回json字符串 print(json_str) print(type(json_str)) 輸出: {"name": "xiaoming", "age": 29} <class 'str'>
Python解碼JSON對(duì)象
import json json_str ='{"id":"09", "name": "Nitin", "department":"Finance"}' # Convert string to Python dict dict = json.loads(json_str) print(dict) #轉(zhuǎn)換成字典來(lái)后,要訪問(wèn)其中的值,可以使用字典的key來(lái)訪問(wèn) print(dict['id']) 輸出: {'id': '09', 'name': 'Nitin', 'department': 'Finance'} 09
讀取json文件
import json with open('test1.json') as f: a = json.load(f) print(a) print(type(a)) 輸出: {'sites': [{'name': '360', 'url': 'www.360.com'}, {'name': 'google', 'url': 'www.google.com'}, {'name': 'baidu', 'url': 'www.baidu.com'}]} <class 'dict'>
寫入json文件
import json dic ={ "name" : "xiaoming", "age" : 20, "phonenumber" : "15555555555" } with open("test2.json", "w") as outfile: json.dump(dic, outfile) 文件test.json {"name": "xiaoming", "age": 20, "phonenumber": "15555555555"}
Python類型轉(zhuǎn)換JSON類型的對(duì)應(yīng)關(guān)系
json類型轉(zhuǎn)換到Python的類型對(duì)照表
以上就是Python是怎樣處理json模塊的的詳細(xì)內(nèi)容,更多關(guān)于Python處理json模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- JavaScript 幾種循環(huán)方式以及模塊化的總結(jié)
- 談?wù)刵ode.js中的模塊系統(tǒng)
- 詳解Node.JS模塊 process
- 通過(guò)實(shí)例了解Nodejs模塊系統(tǒng)及require機(jī)制
- Node.js API詳解之 dgram模塊用法實(shí)例分析
- JavaScript 模塊化開(kāi)發(fā)實(shí)例詳解【seajs、requirejs庫(kù)使用】
- Node.js中文件系統(tǒng)fs模塊的使用及常用接口
- Python json模塊與jsonpath模塊區(qū)別詳解
- 如何手動(dòng)實(shí)現(xiàn)一個(gè) JavaScript 模塊執(zhí)行器
相關(guān)文章
python 利用toapi庫(kù)自動(dòng)生成api
這篇文章主要介紹了python 利用toapi庫(kù)自動(dòng)生成api,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-10-10Python matplotlib庫(kù)的安裝和簡(jiǎn)單使用
本文主要介紹matplotlib庫(kù)的安裝和簡(jiǎn)單使用,針對(duì)新手,首先從升級(jí)pip工具開(kāi)始,然后使用pip工具從國(guó)內(nèi)鏡像快速下載安裝matplotlib庫(kù),同時(shí)附帶簡(jiǎn)單完整的python代碼,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-10-10不知道這5種下劃線的含義,你就不算真的會(huì)Python!
Python是一種高級(jí)程序語(yǔ)言,其核心設(shè)計(jì)哲學(xué)是代碼可讀性和語(yǔ)法,能夠讓程序員用很少的代碼來(lái)表達(dá)自己的想法。這篇文章主要介紹了不知道這5種下劃線的含義,你就不算真的會(huì)Python!對(duì)此標(biāo)題感興趣的朋友一起閱讀本文吧2018-10-10Python合并多個(gè)Excel數(shù)據(jù)的方法
這篇文章主要介紹了Python合并多個(gè)Excel數(shù)據(jù)的方法也就是說(shuō)將多個(gè)excel中的數(shù)據(jù)合并到另一個(gè)表中,本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07Python中判斷input()輸入的數(shù)據(jù)的類型
在pyhton中,經(jīng)常會(huì)用到input()語(yǔ)句,但是input()語(yǔ)句輸入的內(nèi)容只能是字符串類型,而我們經(jīng)常要輸入int類型的數(shù)據(jù)等,這個(gè)時(shí)候就需要用到int()方法給輸入的內(nèi)容強(qiáng)制轉(zhuǎn)換,今天小編給大家介紹下Python中判斷input()輸入的數(shù)據(jù)的類型,感興趣的朋友跟隨小編一起看看吧2022-11-11聊聊Pytorch torch.cat與torch.stack的區(qū)別
這篇文章主要介紹了Pytorch torch.cat與torch.stack的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn)
這篇文章主要介紹了Python OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10