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

如何使用Python的SQLAlchemy打印列名及其对应值?

如何在SQLAlchemy中打印带列名的查询结果

嘿,这事儿好办!你现在用SQLAlchemy查询只拿到了值的元组,想要像MySQL那样输出列名+对应值的格式对吧?我给你两种实用的方法:

方法一:针对单行结果

直接利用查询结果的keys()方法获取列名(包括你用label()设置的别名哦),然后先打印表头再打印值:

from sqlalchemy import create_engine, MetaData, Table, select

# 初始化数据库连接和表结构
engine = create_engine('你的数据库连接字符串')  # 比如'mysql+pymysql://user:pass@host/db'
meta = MetaData(engine)
users = Table('USER', meta, autoload=True)

# 构建带别名的查询(和你要的MySQL语句对应)
selectQuery = select([users.c.ID.label('User_ID'), users.c.NAME]).where(users.c.ID == '1')

# 执行查询并输出
with engine.connect() as conn:
    result = conn.execute(selectQuery)
    row = result.fetchone()
    
    # 获取列名(这里会显示User_ID和NAME)
    column_names = result.keys()
    # 打印表头,用制表符分隔对齐
    print('\t'.join(column_names))
    # 打印对应的值,转成字符串避免类型问题
    print('\t'.join(str(value) for value in row))

执行后你就能得到类似这样的输出:

User_ID NAME
1 John

方法二:处理多行结果

如果你的查询返回多条数据,只需要在获取表头后循环遍历结果行就行:

with engine.connect() as conn:
    result = conn.execute(select(users))  # 比如查询全表
    column_names = result.keys()
    # 先打印表头
    print('\t'.join(column_names))
    # 遍历每一行打印
    for row in result:
        print('\t'.join(str(value) for value in row))

输出就会和MySQL控制台查询的格式一致啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:37:45