【发布时间】:2022-02-16 19:23:39
【问题描述】:
我有这样的文件
类用户(文档):
name = StringField(required=True)
email = EmailField(required=True, primary_key=True)
preferences = ListField(ReferenceField(Preferences, required=True))
languages = ListField(ReferenceField(Languages), required=True)
类语言(文档):
name = StringField(required=True,unique=True)
active = BooleanField(default=True)
类首选项(文档):
name = DictField(required=True,unique=True)
active = BooleanField(default=True)
我正在尝试从这 3 个集合中检索信息。 从我的 python 返回代码
output = Users.objects.aggregate([
{
'$lookup':
{
"from": "languages",
"localField": "languages",
"foreignField": "_id",
"as": "languages"
}
},
{
'$lookup':
{
"from": "preferences",
"localField": "preferences",
"foreignField": "_id",
"as": "preferences"
}
}
])
return jsonify({'result': output})
但出现以下错误:
文件“D:\user.py”,第 51 行,在 get 返回 jsonify({'结果': 输出}) jsonify 中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\site-packages\flask\json_init_.py”,第 355 行 f“{转储(数据,缩进=缩进,分隔符=分隔符)}\n”, 转储中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\site-packages\flask\json_init_.py”,第 133 行 rv = json.dumps(obj, **kwargs) 转储中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json_init.py”,第 238 行 **kw).encode(obj) 文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json\encoder.py”,第 201 行,编码 块 = 列表(块) _iterencode 中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json\encoder.py”,第 431 行 _iterencode_dict(o, _current_indent_level) 的产量 _iterencode_dict 中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json\encoder.py”,第 405 行 从块中产出 _iterencode 中的文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json\encoder.py”,第 438 行 o = 默认值(o) 文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\site-packages\flask_mongoengine\json.py”,第 19 行,默认 返回 superclass.default(self, obj) 文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\site-packages\flask\json_init.py”,第 57 行,默认 返回 super().default(o) 文件“C:\Users\Ideapad\AppData\Local\Programs\Python\Python310\Lib\json\encoder.py”,第 179 行,默认 raise TypeError(f'Object of type {o.class.name} ' TypeError:CommandCursor 类型的对象不是 JSON 可序列化的
【问题讨论】:
标签: python-3.x mongodb mongoengine flask-restful