mysql - 从 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
如何摆脱开头和结尾{}
?
解决方案
问题是数据库查询返回了一个行列表,其中每一行都是一个包含单列的列表。您需要的values
选项是字符串列表。
因此,简单的解决方案是使用列表推导将每一行转换为字符串。像这样的东西应该工作:
values = [row[0] for row in db.get_list()]
cb['values'] = values
由于我无法运行您的代码,我不能肯定地说。无论如何,问题的根源在于您正在传递一个列表(或元组)列表,而 tkinter 需要一个字符串列表。
因为 tkinter 在内部使用大括号作为列表,所以它添加大括号以保留您传入的数据的性质。您可以将返回的数据转换db.get_list()
为字符串列表。
推荐阅读
- python - 我试图添加一个将新用户名和密码输入我的字典的函数,但它无法识别新信息
- sql-server-2008 - SSIS 2008:尝试重命名文件时路径中有非法字符
- java - java中的串口通信
- python - python 使用 file.write 从写入的文件中删除最后一行
- ansible - 在 Ansible 变量中转义双引号和大括号
- excel - Excel - VBA - 创建每个主键的唯一代码组合
- php - Twig AND 运算符与等于
- r - 我如何将 purrr 的地图与带有变量的用户定义函数一起使用
- javascript - 通过 Google Apps 脚本中的 GID 获取特定工作表
- datepicker - 在日期时间选择器中,我想隐藏默认的结算日期