给定如下所示的字典,我想做的是找到所有元素(键+数据)及其完整的根键路径。如果数据是字符串,则返回数据和完整密钥根。如果数据是字典,则它将返回该字典内的第一个键作为数据和完整键根。
a = {
"level1_key": {
"level2_key": {
"level3_key": {
"status": "down"
}
}
}
}
例如,第一个键没有根,它的数据是字典,因此将当前键作为数据返回,并且没有父键。
Key = None
Data = level1_key
level2_key的数据是字典,因此返回当前密钥及其父项。
Key = level1_key
Data = level2_key
Key = level1_key.level2_key
Data = level3_key
Key = level1_key.level2_key.level3_key
Data = status
最后的键数据是一个字符串,因此将字符串作为数据及其所有键返回
Key = level1_key.level2_key.level3_key.status
Data = down
因为字典中有5个元素(4个键和1个字符串),所以我将得到5个键路径和数据元组。
这背后的原因是每个元素都代表配置,如果说“状态”需要更改为“向下”,则实际需要更改的是:level1_key.level2_key.level3_key.status