为什么我的python函数打印出{}Main而不仅仅是Main?
我使用一个函数从json文件中获取数据并将其打印到tkinter组合框中,出于某种原因,第一个单词前面总是有{}。我的json数据没有它,为什么它会出现在我的输出中为什么我的python函数打印出{}Main而不仅仅是Main?,python,json,tkinter,Python,Json,Tkinter,我使用一个函数从json文件中获取数据并将其打印到tkinter组合框中,出于某种原因,第一个单词前面总是有{}。我的json数据没有它,为什么它会出现在我的输出中 with open('profiles.txt', 'r') as file: profiles = json.load(file) for profile in profiles: add_profile = profile['profile_name']
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\u select=ttk.Combobox(新任务\u frame1,宽度=10,值=[])
以下是json示例数据:
[
{
"profile_name": "Main",
"first_name": "Michael ",
},
{
"profile_name": "Test",
"first_name": "Michael ",
}
]
这就是我希望在tkinter组合框中显示的内容:
Main
Test
这就是实际输出
{}Main
Test
问题:为什么我的python函数打印出'{}Main'
,而不仅仅是'Main'
- 初始化
profiles\u选择['values']
这个结果,小部件内部,到:profiles_select = ttk.Combobox(new_task_frame1, width=10, values=[])
,'
使用:tcl
'{}'
- 添加选项
您使用内部值profiles_select['values'] = (profiles_select['values'], add_profile)
和一个新选项'
,结果是'Main'
(''Main')
- 如何显示
选项 您的两个选项: 两个以上的选项:列表框
结论,不要使用更新选项:
profiles\u select['values']=(profiles\u select['values'],add\u profile)
解决方案:首先创建序列,并将其整体分配一次
请提供一份报告。您还没有显示任何创建组合框或将数据输入组合框的代码。@BryanOakley我显示了这两种代码。。。第一个代码块中的
profiles\u select['values']=(profiles\u select['values'],add\u profile)
显示我将值添加到组合框中。我还展示了框的创建,它是profiles\u select=ttk.Combobox(new\u task\u frame1,width=10,values=[])
应该是profile\u select['values']。append(add\u profile)
@acw1668您不能直接追加它,它返回“str”对象没有属性“append”
,然后将整个for循环更改为profiles\u select['values']=tuple(x['profile\u name']表示profiles中的x)
。
{}Main
Test
profiles_select['values'] = ('{{{} Main} Test} Test2', 'Test3')
{{{} Main} Test} Test2
Test3
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