Python 3字典查找所有元素及其键路径

给定如下所示的字典,我想做的是找到所有元素(键+数据)及其完整的根键路径。如果数据是字符串,则返回数据和完整密钥根。如果数据是字典,则它将返回该字典内的第一个键作为数据和完整键根。

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

评论