我正在使用MongoDB与MongoEngine,并试图用Marshmallow_MongoEngine进行serializedeserialize。
我的代码如下。
import marshmallow_mongoengine as ma
from models.profile import Profile
class ProfileSchema(ma.ModelSchema):
class Meta:
model = Profile
我得到的错误是:ModuleNotFoundError: No module named 'marshmallow.compat'
而部分回溯是:
File ".../lib/python3.7/site-packages/marshmallow_mongoengine/__init__.py", line 11, in <module>
from marshmallow_mongoengine.schema import (
File ".../lib/python3.7/site-packages/marshmallow_mongoengine/schema.py", line 6, in <module>
from marshmallow.compat import with_metaclass
似乎这个错误是由于调用了with_metaclass造成的,据我所知,这个函数最初在Marshmallow中是为了向后兼容Python 2.x,现在已经不再使用了。有什么办法解决这个问题吗?或者有其他的方法可以将数据序列化,并从DB中序列化出来?
P.S.我试过使用json_util.dumps,但它以这种格式返回我的值。[\"_id\", \"name"\"] 而不是像Marshmallow -sql这样的好的输出结果
marshmallow-mongoengine与marshmallow 3不兼容。
一直在做这方面的工作,但它还没有被合并(尚未?https:/github.comMongoEnginemarshmallow-mongoenginepull11。.
另外,棉花糖-mongoengine的作者写了一个基于棉花糖的ODM。乌蒙戈,那是为了和mongoengine+marshmallow-mongoengine一样。
你的选择是: