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

导入CSV内容到ttk.Combobox后多词条目带花括号如何解决

问题成因

ttk.Combobox的values参数需要接收一维字符串列表,你通过csv.reader读取得到的data是二维嵌套列表结构,每个元素是对应CSV单行内容组成的子列表,而Tkinter底层基于Tcl语言实现,Tcl在解析嵌套列表中带空格的字符串时,会自动添加花括号标识其为单个列表元素,最终导致下拉框显示时出现花括号包裹的异常效果。

解决方案

将读取到的二维嵌套列表展平为一维字符串列表即可解决该问题,修改后的参考代码如下:

import tkinter as tk
from tkinter import ttk
import csv

owner_var = tk.StringVar()
data = []
with open('C:/Users/Me/Desktop/Test/Sample.csv', encoding='utf-8-sig') as csv_file:
    csv_reader = csv.reader(csv_file)
    for row in csv_reader:
        if row: # 过滤空行
            data.append(row[0]) # 直接提取每行第一列内容存入一维列表

# 注意不要链式调用place方法,否则owner_drop_down会被赋值为None导致后续无法操作该控件
owner_drop_down = ttk.Combobox(master, state='readonly', values=data, textvariable=owner_var, font="Verdana 12")
owner_drop_down.place(x=750, y=300, height=30, width=280)

如果已经生成了原有的嵌套列表,也可以直接通过列表推导式快速展平:

# data为你原有代码中读取得到的原始嵌套列表
flat_data = [row[0] for row in data if row]
owner_drop_down = ttk.Combobox(master, state='readonly', values=flat_data, textvariable=owner_var, font="Verdana 12")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:45:02