Вы ищете column_descriptions()
.
Когда вы используете column_descriptions()
, вы получите метаданные о столбцах, которые будут возвращены в запросе.
В вашем случае:
customer_alias = aliased(CUSTOMER, name='customer2')
#If you want a single field (CUSTOMER.ID)
customer_query = con.query(CUSTOMER, CUSTOMER.ID, customer_alias)
Затем вы должны использовать это выражение:
customer_query.column_descriptions
Выход
[
{
'name':'CUSTOMER',
'type':CUSTOMER,
'aliased':False,
'expr':CUSTOMER,
'entity': CUSTOMER
},
{
'name':'ID',
'type':String(),
'aliased':False,
'expr':CUSTOMER.ID,
'entity': CUSTOMER
},
{
'name':'customer2',
'type':CUSTOMER,
'aliased':True,
'expr':customer_alias,
'entity': customer_alias
}
]
Но, если вам нужны все ключи, вы должны:
#we just want one field:
query = session.query(CUSTOMER).filter_by(id=1)
#then:
conn.execute(query).keys()
И вы получите имена столбцов ['id',PotentialCustomer, FirstNameEN...]
Другие опции:
CUSTOMER.__table__.columns.keys()
CUSTOMER.metadata.columns.keys()