把对象(变量)从内存中变成可存储或传输的过程称之为序列化
序列化的优点:
Json序列化并不是python独有的,json序列化在java等语言中也会涉及到,因此使用json序列化能够达到跨平台传输数据的目的。
json数据类型和python数据类型对应关系表
Json类型 | Python类型 |
---|---|
{} | dict |
[] | list |
"string" | str |
520.13 | int或float |
true/false | True/False |
null | None |
json模块序列化和反序列化的一个过程如下图所示
# 序列化:从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}
原文:https://www.cnblogs.com/xichenHome/p/11366349.html