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)