知行编程网知行编程网  2023-01-01 09:30 知行编程网 隐藏边栏  6 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中对象序列化以及反序列化的方法的相关知识,包括什么是对象序列化,以及python对象序列化这些编程知识,希望对大家有参考作用。

Python中的对象序列化和反序列化方法

面对Python代码中,
如果我们想用一个Class来进行数据的序列化和反序列化的话,
可能用普通的方式会加大执行过程,
如同我们有这样的一个例子:

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_

class Data:
    params: None


data = [
    {
        'params': 'Medusa'
    },
    {
        'params': 0
    }
]

如果我们想使用数据来形成一个数据实例数组,
你可能需要直接实例化数据,
并用列表加载实例对象,
当然,
你可以执行 for 循环来实例化并添加到预先声明的列表中,
那么你可能会想到发电机,
更简单,
可以满足这个要求,
那么我们想象一下,
如何将我们生成的list对象还原为data数据呢?

在 Python 代码中,
我们当然可以实现,
在实现方法上可能没有那么漂亮。

这个时候我们需要这样做:

python -m pip install attrs
python -m pip install cattrs

安装attrs和cattrs这两个库,
那我们怎么使用呢?
看例子:

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
from attr import attrs, attrib
from cattr import structure, unstructure


@attrs
class Data:
    params = attrib()


data = {
    'params': 'Medusa',
}

instance = structure(data, Data)
json = unstructure(instance)

我们输出一下instance和json的值:

# instance:
Data(params='Medusa')

# json:
{'params': 'Medusa'}

而我们使用 instance.params 得到的值是美杜莎,
看到这里,你知道对象之间如何序列化和反序列化了吗?
是的,
当然,
你可能有一个更好的图书馆,
欢迎留言分享~

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享