我正在使用一个函数来从json文件中获取数据并将其打印到tkinter组合框中,出于某种原因,第一个单词的前面总是带有{}。我的json数据没有它,为什么它会出现在我的输出中?
with open('profiles.txt', 'r') as file:
profiles = json.load(file)
for profile in profiles:
add_profile = profile['profile_name']
profiles_select['values'] = (profiles_select['values'], add_profile)
值也预设为不包含任何内容,因此值容器代码如下所示:profiles_select = ttk.Combobox(new_task_frame1, width=10, values=[])
这是json示例数据:
[
{
"profile_name": "Main",
"first_name": "Michael ",
},
{
"profile_name": "Test",
"first_name": "Michael ",
}
]
这是我希望在tkinter组合框中显示的内容:
Main
Test
这实际上是输出
{}Main
Test
答案 0 :(得分:0)
问题:为什么我的python函数打印出
'{}Main'
而不是'Main'
?
profiles_select['values']
profiles_select = ttk.Combobox(new_task_frame1, width=10, values=[])
小部件内部的结果是:''
,tcl
使用:'{}'
profiles_select['values'] = (profiles_select['values'], add_profile)
您采用内部值''
和新选项'Main'
,结果为('', 'Main')
。 tkinter
如何显示Listbox
选项
您的两个选项:
{}Main
Test
两个以上选项:
profiles_select['values'] = ('{{{} Main} Test} Test2', 'Test3')
{{{} Main} Test} Test2
Test3
结论,请勿使用更新选项:
profiles_select['values'] = (profiles_select['values'], add_profile)
解决方案:首先创建序列,然后整个分配一次。
with open('profiles.txt', 'r') as file:
profiles = json.load(file)
options = []
for profile in profiles:
options.append(profile['profile_name'])
profiles_select['values'] = options