python - 无法保存 Python 的 Flask 会话中对象列表中的 MongoDB 集合数据
问题描述
我正在为我的应用程序使用 Python 的 Flask 和 MongoDB。当前逻辑进行 MongoDB 查询并获取输出并将对象列表分配给 python 变量。对于此任务,bson.json_util 转储和加载用于序列化 ObjectId。
但是,当我尝试将 MongoDB 输出保存在烧瓶会话中而不是为其分配一个变量时,即使在使用转储和加载序列化 JSON 之后,我也面临“TypeError:'ObjectId' 类型的对象不是 JSON 可序列化”错误
请找到下面提到的工作流程
数据格式:
project_details = {'_id': ObjectId('6183fba35******'), 'project_title': 'PROJECT_A,'project_id': ObjectId('6183fb8**********'), 'Author': 'Author_Title'}
MongoDB Collection = [Project_Detail 1, Project_Detail 2, .... ]
没有烧瓶会话的 Python 代码:
projects = loads(dumps(mongo_collection.find({"project_id": {"$eq": ObjectId(project_details['project_id'])}})))
状态:执行成功!
带有烧瓶会话的 Python 代码(失败):
session['project_lists'] = list()
session['project_lists'] = loads(dumps(mongo_collection.find({"project_id": {"$eq": ObjectId(project_details['project_id'])}})))
状态:TypeError:“ObjectId”类型的对象不是 JSON 可序列化的
我能够将 project_title 和 project_id 分别保存在会话中,但无法保存会话中的对象列表。 如何保存 Flask Session 中具有 ObjectId 的对象列表中的 MongoDB 查询结果?
谢谢!
解决方案
推荐阅读
- angular - 如何根据一组markdown文件生成Angular组件?
- sql - 如何使用函数在 postgresql 上用数据间隔填充表
- python - Pickle 不保存对象的实例
- python - 如何在熊猫数据透视表中聚合仅超过 1 个的组
- javascript - 创建面包屑路径
- swift - 防止其他人发送虚假 HTTP 发布请求正文的最佳方法是什么?
- javascript - 如何在没有用户点击的情况下复制
- arrays - Fixed form Fortran Allocate array with size to be read from file
- c# - 在 C# 中堆叠盒子而不超过特定高度
- laravel - Laravel:如果没有其他模型共享它,则级联删除模型