导语:
本文主要介绍了关于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 得到的值是美杜莎,
看到这里,你知道对象之间如何序列化和反序列化了吗?
是的,
当然,
你可能有一个更好的图书馆,
欢迎留言分享~
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何用python输入数字08/19
- ♥ python字符串大小写转换的3个函数09/07
- ♥ python format()的格式化用法01/08
- ♥ python如何生成时间戳10/11
- ♥ 如何在python中从堆中删除元素11/19
- ♥ itertools 如何在一行中处理 python3 代码?12/14
内容反馈