如何将字典键树传递给函数作为参数,以在4级嵌套distionary中获得值



例如-我有一个多样式嵌套字典

mydict = {"level00": {
"level01":["1","2","3"],
"level02":{"level10":"Value1","level11":"Value2"},
"level03":{"level11":{"level21":[1,2,3,4],"level22":"Value3"}
}
}

为了得到一个";Value3",例如,我应该设置一个索引树,如:

print(mydict["level00"]["level03"]["level11"]["level22"]) # will get a "Value3"

所以我的问题是,如果我知道所有的字典键,我如何将这个树作为列表传递给函数,以从字典中获得任何值?类似于:

keylist = ["level00","level03","level11","level22"]
neededvalue = getavalue(keylist) #function to return a value from the distionary

密钥列表可以是不同的

可能有一种方法可以将列表转换为索引树??

除了迭代,还有其他方法吗??

如果您有一个如上所述的dict,并且可以创建一个键列表来定义所需值的路径,那么您可以获得如下值:

mydict = {"level00": {
"level01":["1","2","3"],
"level02":{"level10":"Value1","level11":"Value2"},
"level03":{"level11":{"level21":[1,2,3,4],"level22":"Value3"}
}
}}
keylist= ["level00", "level03",'level11' ,"level22"]
def get_innerValue(kl, md ):
"""return the value designated by the keylist, if exists"""
rslt = md
for k in kl:
rslt = rslt[k]
return rslt  

使用get_innerValue(keylist, mydict)收益率:

'Value3'

最新更新