虽然文档提到了一些示例,但在我看来还不够,因此我将在此处添加我的实现,该实现可用于实现经过腌制并存储在数据库中的可变字典。
Use the MutableDict文档中的示例:
class MutableDict(Mutable, dict):
@classmethod
def coerce(cls, key, value):
if not isinstance(value, MutableDict):
if isinstance(value, dict):
return MutableDict(value)
return Mutable.coerce(key, value)
else:
return value
def __delitem(self, key):
dict.__delitem__(self, key)
self.changed()
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
self.changed()
def __getstate__(self):
return dict(self)
def __setstate__(self, state):
self.update(self)
现在创建一个要跟踪的列:
class MyModel(Base):
data = Column(MutableDict.as_mutable(PickleType))
我想看看其他一些可能更高级或可能使用不同数据结构的示例。通用方法是什么pickle
看起来像?有吗(我想没有,或者 SQLAlchemy 会有一个)。