【发布时间】:2015-03-27 16:13:16
【问题描述】:
我有一个如下的字典
{
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5"
}
}
如果字典有 key1==value1,我会将字典追加到列表中。
假设 key1==value1 不在第一个键值对中,而在嵌套字典中,如下所示:
{
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
"key8" : {
"key9" : "value9",
"key10" : {
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
}
}
在上面的dict中,我首先要检查是否有key1=value1。如果没有,我必须遍历嵌套字典,如果它在嵌套字典中找到,我必须将该字典附加到列表中。如果嵌套字典也是嵌套字典,但在第一个键值对中找到 key1=value1,则无需检查内部字典(例如 key4 在第一个键值对中有 key1=value1。因此无需尽管 key6 有 key1=value1),但检查内部的。
所以最后,我将有如下列表。
[
{
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
{
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
]
如何做到这一点? 注意:dict的深度可能会有所不同
【问题讨论】:
-
你有“任意”的深度指令还是只有“可管理”的限制?
-
@syntonym 假设它是任意深度..
标签: python dictionary