Python SQLAlchemy-如何序列化自动加载的模型?
我使用此自定义类将表动态加载到模型中:Python SQLAlchemy-如何序列化自动加载的模型?,python,sqlalchemy,Python,Sqlalchemy,我使用此自定义类将表动态加载到模型中: class Database: tables = [] def __init__(self, db_url=None, session=None): self.url = db_url if session: self.session = session self.engine = session.get_bind() self.tab
class Database:
tables = []
def __init__(self, db_url=None, session=None):
self.url = db_url
if session:
self.session = session
self.engine = session.get_bind()
self.table_names = self.engine.table_names()
def __repr__(self):
return "Database:\nEngine:{}, Tables: {}".format(self.engine, self.table_names)
def load_tables(self):
self.tables = self.tables()
def tables(self):
return [
type(
table_name,
(Base,),
{
"__tablename__": table_name,
"__table_args__": {"autoload": True, "autoload_with": self.engine},
},
)
for table_name in self.table_names
]
但是,当我想通过API端点发送查询的对象时,我无法将它们序列化为JSON:
for table in database.tables:
if table.__tablename__ == tablename:
Model = table
rows = database.session.query(Model).all()
return {
"message": "Table `{}` rows returned.".format(tablename),
"rows": rows,
"status": 0,
}
返回:
TypeError:posts类型的对象不可JSON序列化。
(在本例中,此表名为posts
)
有没有办法用一些默认的序列化来扩展这些模型?您可以使用以下工具