tkinter-将带有字典的嵌套列表中的数据添加到Treeview

时间:2018-11-02 11:53:18

标签: python tkinter treeview

我正在尝试在树视图中放入一些数据,但是我是树视图的新手,如果试图阅读文档,它并不能完全理解它,但变得更加困惑。

我创建了一个包含2个子列表和最后一些字典的嵌套列表。

isolering = [
[
{"name": "mineraluld"},
{"dim": "0,195"},
{"lambda": "0,37"},
{"z": "250"},
{"fire": "NA"}
],
[
{"name": "mineraluld2"},
{"dim": "0,195"},
{"lambda": "0,37"},
{"z": "250"},
{"fire": "NA"}
]]

materialLibrary = [isolering]

现在我不知道将数据放入树状视图的正确方法。

这就是我走了多远。 我不知道该如何调用我的数据。我尝试使用它,就像您会通过它的索引来调用它一样。但我知道这是错误的。

tree.insert("" , 0, text="Name")
tree.insert("", 1, "dirIso", text="Isolering")
tree.insert("dirIso", 1, text=materialLibrary[0][1][0]["name"],values=(materialLibrary[0][1][0]["dim"],
                                                                     materialLibrary[0][1][0]["lambda"],
                                                                     materialLibrary[0][1][0]["z"],
                                                                     materialLibrary[0][1][0]["fire"]))

我这里有一张我想要完成的帽子图片。

enter image description here

我收到的错误消息是:KeyError:'dim'

感谢您的帮助或指向正确的方向。

Thx

1 个答案:

答案 0 :(得分:1)

  

问题:将带有字典的嵌套列表中的数据添加到树视图

# Set 'text' to the first Coloumn Heading
tree.heading('#0', text='Name')

# Insert Tree Heading as Item 'dirIso'
# Set 'text' to "Isolering"
tree.insert("", 1, "dirIso", text="Isolering")

# Loop first list
for n, dirIso in enumerate(isolering,1):
    # Make a list of values from the list of Dictionarys
    list_of_column_values = 
        [list(_dict.values())[0] for _dict in dirIso]

    # Insert the list of values
    # First value goes to Treeview 'text'
    # All other values into the following Columns
    tree.insert('dirIso', n, text=list_of_column_values[0], 
                             values=list_of_column_values[1:])

使用Python测试:3.5