目錄 在日常開發中,對數據進行序列化和反序列化,是常備的操作。而在Python標準庫中提供了json模塊對JSON數據的處理功能。 什麼是json? JSON(JavaScript Object Notation)是一種使用廣泛的輕量數據格式,相對於XML而言更簡單,也易於閱讀和編寫,機器也方便解析 ...
目錄
在日常開發中,對數據進行序列化和反序列化,是常備的操作。而在Python標準庫中提供了json模塊對JSON數據的處理功能。
什麼是json?
JSON(JavaScript Object Notation)是一種使用廣泛的輕量數據格式,相對於XML而言更簡單,也易於閱讀和編寫,機器也方便解析和生成,Json是JavaScript中的一個子集。
Json 模塊提供了四個方法: dumps、dump、loads、load。
Python的Json模塊序列化與反序列化的過程分別是 encoding和 decoding encoding:把一個Python對象編碼轉換成Json字元串 decoding:把Json格式字元串解碼轉換成Python對象
對於簡單數據類型(string、unicode、int、float、list、tuple、dict),可以直接處理。
JSON 序列化
JSON 序列化,是把一個Python對象編碼轉換成Json字元串。 具體的操作為: json.dumps()
import json
Json_str = [
{"name":"Tom", "aga":20},
{"name":"Jack", "aga":16}
]
student =json.dumps(Json_str)
print(type(student))
#<class 'str'>
上述list已經序列化為JSON字元串
print(student)
#[{"name": "Tom", "aga": 20}, {"name": "Jack", "aga": 16}]
JSON 反序列化
JSON 反序列化,是把Json格式字元串解碼轉換成Python類型。 具體的操作為: json.loads()
python中將json反序列化list:
import json
Json_str = '[{"name":"Tom", "aga":20},{"name":"Jack", "aga":16}]'
student = json.loads(Json_str)
print(type(student))
#<class 'list'>
print(student)
#[{'aga': 20, 'name': 'Tom'}, {'aga': 16, 'name': 'Jack'}]
python中將json反序列化dict字典:
import json
Json_str = '{"name":"Tom", "aga":20, "sex":"female"}'
註意上述字元串要加引號:雙引號,數字不用加,布爾值不用加
整個字元串可以用單引號包裝;
student = json.loads(Json_str)
print(type(student))
#輸出 <class 'dict'>
print(student)
#輸出 {'name': 'Tom', 'sex': 'female', 'aga': 20}
訪問JSON的成員
print(student['name'])
數據類型轉換
在預設實現中, json.dumps可以處理的Python對象, 及其所有的屬性值, 類型必須為dict, list, tuple, str, float或者int。
預設實現中, JSON和Python之間的數據轉換對應關係如下表: