【发布时间】:2019-07-16 14:35:10
【问题描述】:
我需要更新嵌套字典中的值,但是我有一个列表,其中包含我需要通过的所有键才能获得总值。但是,此列表是自动生成的,并且层数并不总是相同。
词典示例:
{'pop_up_message': {'': []}, 'widgets': {'separator_dropdown': {'widget': '', 'location': {'columnspan': 1, 'row': 0, 'column': 11, 'sticky': 'e', 'rowspan': 1}, 'selected_option': '', 'position': 5}, 'go': {'widget': '', 'location': {'columnspan': 1, 'row': 0, 'column': 6, 'sticky': 'nsew', 'rowspan': 1}, 'position': 4}, 'middle_label': {'widget': '', 'type': 'label', 'location': {'columnspan': 2, 'row': 1, 'column': 5, 'sticky': 'nsew', 'rowspan': 1}, 'default_name': 'Translated File', 'position': 7}, 'export': {'widget': '', 'location': {'columnspan': 2, 'row': 0, 'column': 5, 'sticky': 'nsew', 'rowspan': 1}, 'default_name': 'Export to .txt', 'position': 10}, 'quit': {'widget': '', 'location': {'columnspan': 1, 'row': 1, 'column': 1, 'sticky': 'nsew', 'rowspan': 1}, 'position': 9}, 'separator_message': {'widget': '', 'type': 'label', 'location': {'columnspan': 1, 'row': 0, 'column': 11, 'sticky': 's', 'rowspan': 1}, 'default_name': 'Define Separator', 'position': 2}, 'output_table': {'height': 25, 'position': 8, 'widget': '', 'type': 'scroll_text', 'location': {'columnspan': 11, 'row': 1, 'column': 1, 'sticky': 'nsew', 'rowspan': 1}, 'default_state': 'disabled'}, 'input_table': {'height': 10, 'position': 6, 'widget': '', 'type': 'scroll_text', 'location': {'columnspan': 11, 'row': 1, 'column': 1, 'sticky': 'nsew', 'rowspan': 1}, 'default_state': 'normal'}, 'import_file': {'widget': '', 'location': {'columnspan': 2, 'row': 1, 'column': 4, 'sticky': 'nsew', 'rowspan': 1}, 'position': 3}, 'clear': {'widget': '', 'location': {'columnspan': 1, 'row': 0, 'column': 11, 'sticky': 'nsew', 'rowspan': 1}, 'position': 11}, 'input_message': {'widget': '', 'type': 'label', 'location': {'columnspan': 2, 'row': 1, 'column': 5, 'sticky': 'nsew', 'rowspan': 1}, 'default_name': 'Insert / Import FIX Message', 'position': 1}}, 'tab_restriction': 'EMC', 'name': 'FIX Translator'}
键列表:
['widgets', 'separator_dropdown', 'location', 'row']
要更改的值:
从0 到3
我有一个嵌套字典(我从 JSON 文件中读取)。这包含 Tkinter 应用程序的配置。使用 Tkinter,我构建了一个界面,我可以在其中读取配置并将其显示在 dict 键为 tk 的框架上。标签和字典值是 tk.Entry。
我的想法是我可以更新(入口小部件)界面,并在从入口小部件中提取所有数据并更新 JSON 文件时
现在,我有一个 tk 列表。字典中包含值和相关“路径”的条目,现在需要更新该字典并将其保存为 JSON。
【问题讨论】:
-
是的,this answer 是我想要发布的内容
-
@reportgunner 鉴于这是重复投票,而是以重复方式关闭。较旧的问题已经有 4-5 种不同的解决方案,它们以不同的方式处理极端情况等,所以它似乎非常详尽
-
我做了@GiacomoAlzetta,但也想为用户指出一个特定的答案。
标签: python json python-3.x dictionary