考虑下面显示的这个词典:
"Title": {
"Label-1": {
"sublabel-1": {
"item1": {},
"item2": {}
},
"sublabel-2": {
"item3": {},
"item4": {},
"item5": {}
}
}
"Label-2": {
"sublabel-1": {
"item6": {},
"item7": {},
"item8": {},
}
}
}
这是一个修改一些键值对的字典,如下所示。
values_to_add={item1:a,item2:b}
目标是将值a和b添加到字典中的相应键中。
作为参考,我阅读了以下帖子:
1。First Reference: (不同之处在于我只需修改键值对,而不是更新变量中给出的键值对的详细跟踪。)
2。Second Reference: (不幸的是,没有跟进这个问题。)
其他一些要点:
字典的级别和深度可能会有所不同。主要关注点是在大多数时候为任何子标签的最里面的键添加值。(在本例中为item1和item2)
使用python 2来操作字典。
我目前正在尝试创建一个程序来解决它。希望能够对问题的不同方法有所了解并学习新的东西。
答案 0 :(得分:1)
您的数据结构看起来反映了您想要输出数据的方式,这使更新过程变得复杂。
推迟构建嵌套字典。相反,设置平面仅包含叶键的字典,并将上级键设置为数据:
{
"item1": {'path': ("Title","Label-1","sublabel-1"), "values":{} },
"item2": {'path': ("Title","Label-1","sublabel-1"), "values":{} },
"item3": {'path': ("Title","Label-1","sublabel-2"), "values":{} },
"item4": {'path': ("Title","Label-1","sublabel-2"), "values":{} },
"item5": {'path': ("Title","Label-1","sublabel-2"), "values":{} },
"item6": {'path': ("Title","Label-2","sublabel-1"), "values":{} },
"item7": {'path': ("Title","Label-2","sublabel-1"), "values":{} },
"item8": {'path': ("Title","Label-2","sublabel-1"), "values":{} },
}
完成后,您可以遍历它并构建所需的嵌套结构。这也使您可以轻松容纳不同长度的关键路径,否则将导致非常复杂的访问方法。
这当然假设您的叶键是唯一的。这也隐含在你的问题中。不过,它确实让我觉得这是一个不太可能的假设。