首页 > 解决方案 > 从 MySql 输入中删除 {}

问题描述

我正在使用 MySql 存储过程 get_list 来填充 ttk.Combobox

my_number = tk.StringVar()
cb=ttk.Combobox(top_frame,width=25,textvariable=my_number)
cb['values']=db.get_list()
cb.grid(row=1,column=4)

它工作正常,除了结果用{}.

结果:{Smith, John}

我想要的是:Smith, John

如何摆脱开头和结尾{}

标签: mysqltkinter

解决方案


问题是数据库查询返回了一个行列表,其中每一行都是一个包含单列的列表。您需要的values选项是字符串列表。

因此,简单的解决方案是使用列表推导将每一行转换为字符串。像这样的东西应该工作:

values = [row[0] for row in db.get_list()]
cb['values'] = values

由于我无法运行您的代码,我不能肯定地说。无论如何,问题的根源在于您正在传递一个列表(或元组)列表,而 tkinter 需要一个字符串列表。

因为 tkinter 在内部使用大括号作为列表,所以它添加大括号以保留您传入的数据的性质。您可以将返回的数据转换db.get_list()为字符串列表。


推荐阅读