面對Python程式碼中, 如果我們想用一個Class來進行資料的序列化和反序列化的話, 可能用普通的方式會加大執行過程, 如同我們有這樣的一個例子:
#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
class Data:
params: None
data = [
{
'params': 'Medusa'
},
{
'params': 0
}
]
複製程式碼
如果我們想把data
用Data
例項的方式組成陣列,
你可能需要直接將資料進行例項,
並將例項物件用列表裝載,
當然了,
你可以進行for
迴圈進行例項並新增到一個事先宣告的列表中,
那你可能想到生成器了,
更加簡單,
就可以實現該需求,
那我們試想一下,
怎麼把我們生成的列表物件還原成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
所得到的值為Medusa
,
看到這兒你是不是知道怎麼在物件之間序列化和反序列化了?
是的,
當然了,
你可能有更好的庫,
歡迎你的留言分享哦~