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

如何在SQLAlchemy中格式化输出,使用PrettyTable添加表头美化展示

实现方案

1. 安装依赖

首先安装表格格式化工具PrettyTable:

pip install prettytable

2. 调整代码

我们可以封装通用的打印函数,直接复用SQLAlchemy查询结果自带的列名作为表头,无需手动硬编码列名,修改后完整代码如下:

from prettytable import PrettyTable

# 通用表格打印函数
def print_formatted_table(query_result, table_name):
    print(f'\nTable "{table_name}" : \n')
    rows = query_result.fetchall()
    if len(rows) < 1:
        print(f'\tTable "{table_name}" is empty!\n')
        return
    # 直接从查询结果获取列名作为表头
    pt = PrettyTable(field_names=query_result.keys())
    # 批量添加行数据
    pt.add_rows(rows)
    # 打印格式化后的表格
    print(pt)

# 原有查询逻辑保持不变
p = select([persons])
st = select([persons,students]).where(students.c.id == persons.c.id)
t = select([persons,teachers]).where(persons.c.id == teachers.c.person_id)
cl = select([classes])
s_in_cl = select([students_in_class])

p1 = conn.execute(p)
st1 = conn.execute(st)
t1 = conn.execute(t)
cl1 = conn.execute(cl)
ss1 = conn.execute(s_in_cl)

# 调用通用函数打印所有表格
print_formatted_table(p1, "persons")
print_formatted_table(st1, "students")
print_formatted_table(t1, "teachers")
print_formatted_table(cl1, "classes")
print_formatted_table(ss1, "students_in_class")

效果说明

输出会自动生成带边框、列对齐的格式化表格,datetime类型数据会自动规范展示,无需额外处理。如果需要调整表格样式,比如修改边框样式、列对齐方式,可以直接调用PrettyTable的内置属性和方法调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:06:06