Flask-SQLAlchemy ORM与JSON序列化:排查“User对象无法JSON序列化”错误
在Flask框架结合SQLAlchemy ORM进行数据库操作时,经常会遇到对象序列化问题。本文将详细分析并解决常见的“TypeError: Object of type ‘User’ is not JSON serializable”错误。
问题描述:
使用SQLAlchemy定义的User模型类,尝试通过User.query.all()获取所有用户数据,并直接将其序列化为JSON时,发生序列化错误。
示例代码:
from sqlalchemy import Column, Integer, Stringfrom lib.database import Base # 假设lib.database包含数据库连接配置class User(Base): __tablename__ = 'users' # 表名 id = Column(Integer, primary_key=True) app_key = Column(String(50), unique=True) secret = Column(String(120), unique=True) def __init__(self, app_key=None, secret=None): self.app_key = app_key self.secret = secret def __repr__(self): return f'<User {self.app_key}>'# ... 查询代码 ...users = User.query.all()# ... 此处报错 ...
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。