把對象(變量)從內存中變成可存儲或傳輸的過程稱之爲序列化java
序列化的優勢:python
Json序列化並非python獨有的,json序列化在java等語言中也會涉及到,所以使用json序列化可以達到跨平臺傳輸數據的目的。json
json數據類型和python數據類型對應關係表網絡
Json類型 | Python類型 |
---|---|
{} | dict |
[] | list |
"string" | str |
520.13 | int或float |
true/false | True/False |
null | None |
json模塊序列化和反序列化的一個過程以下圖所示code
# 序列化:從python的字典(最經常使用)變成json串, dump # 反序列化:從json串變成python的字典(最經常使用),load import json dic = {'a': 1, 'b': 'abc', 'c': None} data = json.dumps(dic) # 序列化到內存中 print(data,type(data)) # 單引號所有變成雙引號 # {"a": 1, "b": "abc", "c": null} <class 'str'> data = json.loads(data) # 從內存中獲取json串 print(data,type(data))# 雙引號全都變成了單引號 # {'a': 1, 'b': 'abc', 'c': None} <class 'dict'> with open('test.json','w',encoding='utf8') as fw:# 還能夠直接序列化寫在文件裏 json.dump(dic,fw) with open(f'{"test"}.json','r',encoding='utf8') as fr: # 直接從文件裏取,進行反序列 data = json.load(fr) print(data) # {'a': 1, 'b': 'abc', 'c': None}