点击保存按钮将Tkinter Treeview值转换为字典列表的实现方法
Tkinter Treeview 转字典列表save方法实现
你只需要在save方法中遍历Treeview所有行,把列名和对应单元格值拼接为字典即可,完整实现代码如下:
def save(self): # 获取Treeview配置的所有列名 columns = self.tex_table["columns"] data_list = [] # 遍历Treeview中所有行的id for row_id in self.tex_table.get_children(): # 取当前行的所有单元格值 row_data = self.tex_table.item(row_id, "values") # 列名与单元格值配对为字典,加入结果列表 data_list.append(dict(zip(columns, row_data))) # 此处可根据业务需求处理得到的data_list,以下是参考用法 # 控制台打印验证结果 print(data_list) # 如需持久化存储为json文件,可取消注释以下代码 # import json # with open("销售数据.json", "w", encoding="utf-8") as f: # json.dump(data_list, f, ensure_ascii=False, indent=4)
逻辑说明
self.tex_table.get_children():返回Treeview中所有顶级行的ID,你的场景下没有嵌套行,该方法可以拿到所有录入的记录self.tex_table.item(row_id, "values"):根据行ID获取对应行所有单元格的取值,返回格式为元组zip(columns, row_data):将列名列表和行值元组按顺序一一配对,转成字典后就符合你要求的输出格式
内容的提问来源于stack exchange,提问作者Sakthi Subramani
相关产品推荐
相关产品推荐

