序列化
什么玩意叫做序列号呢。
我有一个python对象,对不对。
这个玩意呢,是在内存当中的。
我没法给杨太岁
,可是呢,我想要给杨太岁
。
我就要把这个python对象从内存里头呢拿出来,变成字典
或者JSON
或者二进制
。
这个玩意呢,就是叫做序列化。
反序列化
杨太岁呢,他接收到了我给他的玩意。
他没法用python操作呀。
他需要先将接收到的二进制或者JSON呢,变成是python对象。
这个过程呢,就是叫做反序列化。
pydantic的序列化
- emp.model_dump():这个不用说,将python对象转换成为字典;
- emp.model_dump_json():这个不用说,将python对象转换成为JSON。
pydantic的反序列化
new_emp = Employee(**dict_data)
你看这个玩意,牛逼不?
这就是直接把字典解包创建对象。
json_str = '{"name": "alice smith", "age": 30, "contact": "alice@company.com"}'
new_emp = Employee.model_validate_json(json_str)
你看这个玩意,牛逼不?
这是使用model_validate_json
方法将json反序列化成为python对象。
反序列化的时候,会偷偷干两件事情:一是数据校验,二是类型转换。