SQLAlchemy 对象转成 dict

创建日期: 2025-01-07 10:48 | 作者: 风波 | 浏览次数: 21 | 分类: SQLAlchemy

refer: https://blog.csdn.net/jacke121/article/details/89292743

1. 方法一:给对象增加函数 to_dict()

给需要转换的 SQLAlchemy 对象添加一个转换函数

原来的类定义:

Base = sqlalchemy.ext.declarative.declarative_base()

class Post(Base):
    __tablename__ = 'post'
    id = Column(Integer, primary_key=True)

Base 类中添加一个 to_dict() 方法:

def to_dict(self):
    return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}

Base.to_dict = to_dict

使用的时候如下:

p = session.query(Post).first()
p.to_dict()

2. 方法二:写一个工具函数 to_dict()

其实没必要修改基类,可以直接写一个函数,然后调用函数的时候,把对象传参进去就可以了:

def to_dict(obj):
    return {c.name: getattr(obj, c.name, None) for c in obj.__table__.columns}

使用的时候如下:

p = session.query(Post).first()
to_dict(p)
21 浏览
17 爬虫
0 评论