溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么處理json模塊

發(fā)布時(shí)間:2021-07-10 14:14:25 來(lái)源:億速云 閱讀:150 作者:Leah 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)Python中怎么處理json模塊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

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)隔開;

  • “{}”用來(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)的。

Python中怎么處理json模塊

實(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)系

Python中怎么處理json模塊

看完上述內(nèi)容,你們對(duì)Python中怎么處理json模塊有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI