0

データがネストされた辞書に格納されている多くのファイルを解析しています。サブ辞書の名前はファイルごとに異なる場合があります。また、入れ子の長さが異なることを考慮する必要があるかもしれません。ただし、アクセスする必要があるdictの名前は常に知っています。たとえば、口述があります:

d = {'Unknown2': {'Unkw1': {'INeedYou': {'k': 'v'}}}}
d2 = {'anotherkey': {'INeedYou': {'k': 'v'}}}}

私はいつも掘り下げる必要があり{'k': 'v'}ます。d['Unknown2']['Unkw1']['INeedYou']構文以外にアクセスする他の方法を考えられますか?

d.keys()上記の方法で名前を取得して目的の辞書にアクセスするために使用できると思いますが、ネストが深い可能性があるため、必要な辞書にアクセスするにはかなりの繰り返しが必要です。

仕事をより簡単に終わらせるための巧妙なトリックを知っている人もいると思います。

4

1 に答える 1

2

見つけたキーが見つかるまで、ディクショナリ ツリー全体をたどるのを避けることができるとは思えません。基本的な考え方は次のとおりです。

def findDict (d, keyName):
    if not isinstance (d, dict): return None
    if keyName in d: return d [keyName]
    for subdict in d.values ():
        r = findDict (subdict, keyName)
        if r: return r
于 2013-10-30T16:13:51.470 に答える