1. 程式人生 > >常用模組——json模組

常用模組——json模組

json模組

pickle模組和shelve模組序列化的得到資料只能被Python所解析。

通常企業開發不可能做一個單機版,都需要聯網進行計算機之間的互動。

我們必須保證這個資料能夠跨平臺使用。

JSON是什麼?

JavaScript object notation 就是物件表示法。

 對我們而言JSON就是通用的資料格式,任何語言都能夠解析。

json中資料格式與Python中的資料型別的對照

json資料格式 Python資料型別
{} dict
[] list
int/float int/float
true/false True/False
null None

 

 

 

 

 

json的語法規範

最外層通常是一個字典或列表。

{} or []

只要你想寫一個json格式的資料,那麼最外層直接寫{}

字串必須是雙引號。

你可以在其中巢狀任意多的層次。

json模組的核心功能

dump  dumps

load  loads

不帶s 的封裝了write和read功能

a.json檔案

{
  "name":"msj",
  "age":25,
  "gender":"male"
}

 

反序列化

import json
with open(r'a.json','r',encoding='utf-8') as f:
    res = json.loads(f.read())
    print(res)
#{'name': 'msj', 'age': 25, 'gender': 'male'}

 反序列化load()

with open(r'a.json','r',encoding='utf-8') as f:
    res
=json.load(f) print(res)

序列化dumps()

dic = {
    'egon':{
        "age":18,
        "ismale":True,
        'add':None

    }
}

res = json.dumps(dic)
with open(r'b.json','w',encoding='utf-8') as f:
    f.write(res)

輸入符合Python語法的格式內容會被轉換為符合json語法的。

{"egon": {"age": 18, "ismale": true, "add": null}}

反序列化dump

with open(r'c.json','w',encoding='utf-8') as f:
    json.dump(dic,f)