投射一些列和 select 所有列而不显式写入列名
Cast some columns and select all columns without explicitly writing column names
我想投射一些专栏,然后 select 所有其他专栏
id, name, property, description = column("id"), column("name"), column("property"), column("description")
select([cast(id, String).label('id'), cast(property, String).label('property'), name, description]).select_from(events_table)
有什么方法可以在不提及所有列名称的情况下转换某些列和 select
我试过了
select([cast(id, String).label('id'), cast(property, String).label('property')], '*').select_from(events_table)
py_.transform(return_obj, lambda acc, element: acc.append(dict(element)), [])
但是我得到了两个额外的列(总共 7 列),我无法将它们转换为引发键错误的字典。
我正在使用 FASTAPI、sqlalchemy 和数据库(异步)
谢谢
你肯定能做到
select_columns = []
for field in events_table.keys()
select_columns.append(getattr(events_table.c, field))
select(select_columns).select_from(events_table)
到 select 来自 table 的所有字段。您还可以保留一个您想要实际 select 而不是 events_table.keys() 的字段列表,例如
select_these = ["id", "name", "property", "description"]
select_columns = []
for field in select_these
select_columns.append(getattr(events_table.c, field))
select(select_columns).select_from(events_table)
我想投射一些专栏,然后 select 所有其他专栏
id, name, property, description = column("id"), column("name"), column("property"), column("description")
select([cast(id, String).label('id'), cast(property, String).label('property'), name, description]).select_from(events_table)
有什么方法可以在不提及所有列名称的情况下转换某些列和 select
我试过了
select([cast(id, String).label('id'), cast(property, String).label('property')], '*').select_from(events_table)
py_.transform(return_obj, lambda acc, element: acc.append(dict(element)), [])
但是我得到了两个额外的列(总共 7 列),我无法将它们转换为引发键错误的字典。
我正在使用 FASTAPI、sqlalchemy 和数据库(异步)
谢谢
你肯定能做到
select_columns = []
for field in events_table.keys()
select_columns.append(getattr(events_table.c, field))
select(select_columns).select_from(events_table)
到 select 来自 table 的所有字段。您还可以保留一个您想要实际 select 而不是 events_table.keys() 的字段列表,例如
select_these = ["id", "name", "property", "description"]
select_columns = []
for field in select_these
select_columns.append(getattr(events_table.c, field))
select(select_columns).select_from(events_table)