Python 字典在分配后成为MongoEngine中的基列表
我正在使用mongoengine0.9.0Python 字典在分配后成为MongoEngine中的基列表,python,dictionary,mongoengine,Python,Dictionary,Mongoengine,我正在使用mongoengine0.9.0 class EntityChange(Document): ... old_data = DictField() new_data = DictField() 我想将dict对象保存到old\u data和new\u data中 为什么字段在赋值后变成基本列表 data = {u'int_id': 100500, u'_cls': 'BuildingKind', ...} instance = EntityChange() i
class EntityChange(Document):
...
old_data = DictField()
new_data = DictField()
我想将dict
对象保存到old\u data
和new\u data
中
为什么字段在赋值后变成基本列表
data = {u'int_id': 100500, u'_cls': 'BuildingKind', ...}
instance = EntityChange()
instance.new_data = data
# after that
# isinstance(instance, BaseList) is True
# isinstance(instance, BaseDict) is False
# instance.new_data == ['int_id', 'id', ...] is True. why?
您可以发布
isinstance(instance.new_data,BaseDict)
和type(instance.new_data)
的输出,以及instance.new_data
的输出(省去比较)@NilsWerner,当然可以。它适用于0.9.0isinstance(instance.new_data,BaseDict):False类型(instance.new_data):instance.new_数据:['id','ent_id','int_id','type','u cls']
我无法复制这个,你能创建am吗?还要检查BuildingKind
有什么问题。也许设置\u cls
属性是罪魁祸首。我实际上使用的是flask mongoengine包装器。在这里你可以得到mcve。只需执行docker编写--build。一件有趣的事<代码>\u cls新数据的字段要求存在model BuildingKind。这真的很奇怪。谢谢,升级到0.10.1修复了行为。