Eleganten Weg zu prüfen, ob eine verschachtelte Schlüssel existiert ein python dict

Ist es mehr lesbare Art und Weise zu überprüfen, ob ein Schlüssel begraben in einem dict vorhanden ist, ohne zu prüfen, jede Ebene unabhängig?

Können sagen, die ich brauche, um diesen Wert in ein Objekt begraben (Beispiel entnommen aus Wikidata):

x = s['mainsnak']['datavalue']['value']['numeric-id']

Achten, dass dies nicht das Ende mit einem Laufzeitfehler, ist es erforderlich, entweder überprüfen Sie jede Ebene so:

if 'mainsnak' in s and 'datavalue' in s['mainsnak'] and 'value' in s['mainsnak']['datavalue'] and 'nurmeric-id' in s['mainsnak']['datavalue']['value']:
    x = s['mainsnak']['datavalue']['value']['numeric-id']

Die andere Art, wie ich denken kann, um dieses Problem zu lösen ist, wickeln Sie diese in ein try catch konstruieren, die ich fühle, ist auch eher peinlich für solch eine einfache Aufgabe.

Ich bin auf der Suche nach etwas wie:

x = exists(s['mainsnak']['datavalue']['value']['numeric-id'])

gibt True wenn alle Ebenen vorhanden ist.

InformationsquelleAutor loomi | 2017-04-19

Schreibe einen Kommentar