You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQLAlchemy的db.select查询时如何获取列名:值格式的结果

解决方案

你可以直接通过SQLAlchemy自带的方法或手动转换两种方式实现「列名:值」的返回格式:

方案1:推荐(适配SQLAlchemy 1.4及以上版本)

直接调用结果代理对象的mappings()方法,原生返回键值对格式的结果,修改后的代码如下:

connection = engine.connect()
metadata = db.MetaData()
report = db.Table('report', metadata, autoload=True, autoload_with=engine)
query = db.select([report])
ResultProxy = connection.execute(query)
# 调用mappings()后再获取结果,直接返回[{列名:值}, {列名:值}]格式的列表
ResultSet = ResultProxy.mappings().fetchall()

如果需要纯Python字典类型,可以额外加一层转换:

result_dict = [dict(row) for row in ResultProxy.mappings()]

方案2:低版本兼容方案

如果你的SQLAlchemy版本不支持mappings()方法,可以手动通过查询列名和行值拼接字典:

connection = engine.connect()
metadata = db.MetaData()
report = db.Table('report', metadata, autoload=True, autoload_with=engine)
query = db.select([report])
ResultProxy = connection.execute(query)
ResultSet = ResultProxy.fetchall()
# 获取查询列名,遍历行手动生成字典
columns = ResultProxy.keys()
result_dict_list = [dict(zip(columns, row)) for row in ResultSet]

内容的提问来源于stack exchange,提问作者Nikolay Vatan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:18:03