将数组扩展为字典键

时间:2018-10-09 07:54:12

标签: python

考虑以下命令:

{
    "a" : {
        "b" : [
            entry,
            entry,
            ...
        ]
    }
}

给定键形式为"a.b"的键,是否可以解决每个条目?
理想情况下,可以编写类似dict[*("a.b".split("."))]的东西并获得dict["a"]["b"],但是我还没有找到在Python中实现此目的的方法。


编辑2

由于似乎没有人真正在乎质量代码,所以我最终使用了一个普通的for循环:

data = { "a" : { "b" : "foo" } }
key = "a.b"

d = data
for k in key.split("."):
    d = d[k]

d == data["a"]["b"] # True

编辑3

评论包含有效的解决方案:

import operator
from functools import reduce  # forward compatibility for Python 3

data = { "a" : { "b" : "foo" } }
key = "a.b"

d = reduce(operator.getitem, key.split("."), data)

d == data["a"]["b"] # True

但是,除此之外,我想没有办法利用某种语言功能来做到这一点,这是最初的问题。

0 个答案:

没有答案