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

如何在Python Tkinter Treeview中去除SQL查询结果的引号与括号

解决Tkinter Treeview展示SQL查询结果的格式问题

问题分析

从你的代码来看,Treeview展示的格式问题大概率是因为SQL查询返回的字段内容存在多余空格、空值,或者Treeview本身的列宽、对齐方式未设置导致的。

具体解决步骤

1. 清理SQL查询返回的结果数据

在将结果插入Treeview前,先对每一行数据做格式化处理,去除多余空格、替换空值:

def clean_row(row):
    cleaned = []
    for item in row:
        # 处理空值,替换为友好占位符
        if item is None:
            cleaned.append("-")
        else:
            # 去除字符串前后的多余空格
            cleaned.append(str(item).strip())
    return tuple(cleaned)

def display_results(results):
    for i in tree.get_children():
        tree.delete(i)  # 清空Treeview现有内容
    for row in results:
        cleaned_row = clean_row(row)
        tree.insert('', 'end', values=cleaned_row)  # 插入清理后的行数据

2. 设置Treeview列的对齐方式与列宽

默认Treeview的列没有对齐规则,容易导致内容排版混乱,添加对齐和列宽设置:

columns = ('First Name', 'Last Name', 'Phone Number')
tree = ttk.Treeview(frame, columns=columns, show='headings')

# 设置表头与列内容的对齐方式('w'代表左对齐,'center'居中,'e'右对齐)
tree.heading('First Name', text='First Name', anchor='w')
tree.heading('Last Name', text='Last Name', anchor='w')
tree.heading('Phone Number', text='Phone Number', anchor='w')

# 自定义每列的宽度,适配内容长度
tree.column('First Name', width=120)
tree.column('Last Name', width=120)
tree.column('Phone Number', width=150)

tree.grid(row=3, column=0, sticky='nsew')

3. 优化SQL查询语句(可选)

如果数据库字段本身存在多余空格,可以在SQL层面直接处理,减少Python端的工作量:

SELECT 
    LTRIM(RTRIM(First_Name)) AS First_Name,
    LTRIM(RTRIM(Name)) AS Name,
    LTRIM(RTRIM(Phone_1)) AS Phone_1
FROM [Archive].[dbo].[Client_Tbl]
WHERE 
    LTRIM(RTRIM(First_Name)) = ? 
    OR LTRIM(RTRIM(Name)) = ? 
    OR LTRIM(RTRIM(Phone_1)) = ?

额外提示

  • 确保SQL查询返回的字段数量(3个)和Treeview的列数(3个)完全匹配,否则会出现展示错位。
  • 可以给Treeview添加垂直滚动条,方便查看大量数据:
scrollbar = ttk.Scrollbar(frame, orient='vertical', command=tree.yview)
tree.configure(yscroll=scrollbar.set)
scrollbar.grid(row=3, column=1, sticky='ns')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:46:21