为什么我的python函数打印出{}Main而不仅仅是Main?

为什么我的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']

我使用一个函数从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\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