如何通过列变量从SQLAlchemy查询结果中获取对应列?
在SQLAlchemy中通过列变量获取查询结果对应值
你可以直接用列变量作为索引,从查询返回的行对象中取值,完全不需要知道列名:
col_id = some_table.id query = session.query(col_id) for row in query: id = row[col_id]
对应你实际的代码结构,修改后是:
col_id, query = build_query() for row in query: id = row[col_id]
这种方式的优势在于:
- 不管列有没有被
label()重命名,只要用原来的列变量就能准确获取对应值 - 无需硬编码列名,代码更易维护,尤其是在动态构建查询的场景下
如果你的查询包含多个列变量,同样可以用每个列变量分别索引:
col_id = some_table.id col_name = some_table.name query = session.query(col_id, col_name) for row in query: user_id = row[col_id] user_name = row[col_name]
内容的提问来源于stack exchange,提问作者edA-qa mort-ora-y
相关产品推荐
相关产品推荐

