嵌套字典(JSON):合并存储在列表中的多个键以从字典中访问其值

1sbrub3j  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(131)

我有一个JSON,其中的键和值的数目未知,我需要将用户的选择存储在一个列表中,然后访问所选键的值;(可以保证列表中的键始终以正确的顺序存储)。
示例
我需要访问**value_key1-2**。

mydict = {
    'key1': {
        'key1-1': {
            'key1-2': 'value_key1-2'
        },
    },
    'key2': 'value_key2'
}

我可以看到密钥,而且密钥数量有限,因此我可以手动用途:

>>> print(mydict['key1']['key1-1']['key1-2'])
>>> 'value_key1-2'

现在,在将用户的选择存储到列表中之后,我们得到了以下列表:

Uselection = ['key1', 'key1-1', 'key1-2']

如何将这些列表元素转换为我们之前使用的类似代码?
如何使用Python自动化它?

wqsoz72f

wqsoz72f1#

您必须循环关键点列表,并在每一步更新“当前值”。

val = mydict

try:
    for key in Uselection:
        val = val[key]
except KeyError:
    handle non-existing keys here

另一种更“时髦”的方法也可以做到这一点(通常不推荐):

from functools import reduce

val = reduce(dict.get, Uselection, mydict)

相关问题