Python 棉花糖MongoEngine:ModuleNotFoundError:没有名为'的模块;棉花糖.compat';
我将MongoDB与MongoEngine一起使用,并尝试使用Marshmallow_MongoEngine进行序列化/反序列化 我的代码如下:Python 棉花糖MongoEngine:ModuleNotFoundError:没有名为'的模块;棉花糖.compat';,python,mongodb,mongoengine,marshmallow,Python,Mongodb,Mongoengine,Marshmallow,我将MongoDB与MongoEngine一起使用,并尝试使用Marshmallow_MongoEngine进行序列化/反序列化 我的代码如下: import marshmallow_mongoengine as ma from models.profile import Profile class ProfileSchema(ma.ModelSchema): class Meta: model = Profile 我得到的错误是: ModuleNotFoundEr
import marshmallow_mongoengine as ma
from models.profile import Profile
class ProfileSchema(ma.ModelSchema):
class Meta:
model = Profile
我得到的错误是:
ModuleNotFoundError:没有名为'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
文件“../lib/python3.7/site packages/marshmallow\u mongoengine/\uuuuu init\uuuu.py”,第11行,在
从marshmallow_mongoengine.schema导入(
文件“../lib/python3.7/site packages/marshmallow\u mongoengine/schema.py”,第6行,在
从marshmallow.compat导入带有\u元类
这个错误似乎是调用with_元类的结果,据我所知,该元类最初在Marshmallow中是为了与Python 2.x向后兼容,现在不再使用。是否有解决方案?或者其他方法来序列化/反序列化数据库中的数据
附言。
我曾尝试使用json_util.dumps,但它以以下格式返回我的值:[\“\u id\”,\“name\”],而不是我习惯于从marshmallow sql之类的东西获得的良好输出。marshmallow mongoengine与marshmallow 3不兼容 这方面已有工作,但尚未合并(尚未?): 顺便说一句,marshmallow mongoengine的作者写了一个基于marshmallow的ODM,这意味着要做与mongoengine+marshmallow mongoengine相同的事情 你的选择是:
- 帮助将棉花糖mongoengine移植到棉花糖3或转移到umongo(好)
- 坚持棉花糖2(坏)
- 在代码中使用上面棉花糖3兼容性PR中的分支(丑陋)