如何获取SQLAlchemy关联查询结果中的列名?
获取SQLAlchemy关联查询结果的所有列名
方法一:从ORM模型类直接提取
你查询的是Order和Item两个模型,直接通过模型类的__table__.columns就能获取所有列名:
# 获取Order的所有列名 order_columns = [col.name for col in Order.__table__.columns] # 获取Item的所有列名 item_columns = [col.name for col in Item.__table__.columns] # 合并得到所有列名 all_columns = order_columns + item_columns
方法二:从查询结果的实例中提取
如果想从返回的result集合里的具体对象提取,可先取第一个结果元素(需确保结果非空),再通过实例的__mapper__.columns获取列名:
if result: first_order, first_item = result[0] # 提取Order实例的列名 order_cols = [col.key for col in first_order.__mapper__.columns] # 提取Item实例的列名 item_cols = [col.key for col in first_item.__mapper__.columns] # 合并列名 all_cols = order_cols + item_cols
注意事项
- 由于你使用
query(Order, Item),返回的每个结果是(Order对象, Item对象)的元组,最终列名是两个模型的列名集合 - 若两个模型存在同名列,建议给列名添加前缀(如
order_、item_)区分,避免冲突
内容的提问来源于stack exchange,提问作者experimental
相关产品推荐
相关产品推荐

