我有一个像这样的巨大的dict结构:
my_data = {
'key1': {
'_': 'value1': 'aaa'
},
'key2': {
'_': 'value2': 'bbb',
'key2.1': {
'_': 'ccc',
'key2.1.1': {
'_': 'ddd'
}
}
'key2.2': {
'_': 'eee',
'key2.2.1': {
'_': 'fff'
}
'key2.2.2': {
'_': 'ggg'
}
}
}
}
等等。
我想以一种树表示的形式向用户显示它,使用GTK、TK或任何东西来浏览它折叠和展开分支,并可能搜索键和值。
也许我不需要手工开发这样一个工具,而且已经有一些东西可以将这种数据可视化出来了?
我终于按照@PavelAnossov的建议,使用d3 Tree Layout将数据转换成
json
。这里已经有了一些很好的答案,但我相信这一个符合“简单”的条件(它在tkinter和uuid库中只使用PythonBult)。
它基于John Gaines Jr.在another question中的回答,由Will Ware修改为支持列表,由我修改为也支持元组(在python 3上运行)。
我还重新组织了它,以便您可以用
tk_tree_view(data)
这样简单的东西调用查看器,并传入一个字典(如最后的示例所示)。看起来是这样的:
我不知道有什么现成的工具,但您可以使用Traits UI快速开发自己的工具
就这样。您将拥有一个类似于:
Traits UI使用Model-View-Controller方法创建GUI,而无需编程创建每个小部件。在这里,我使用预定义的ValueEditor来显示任意类型。现在,您可以扩展它以支持搜索、筛选等…
编辑
支持过滤的简单扩展:
会给你一个文本框,上面写着“输入时过滤”。搜索并不是对所有的情况都完全正确,但是你可以找到答案。
请注意,在这个示例中,dict中的数据部分是整数,部分是字符串,这两种类型都可以找到。
相关问题 更多 >
编程相关推荐