Est-il plus lisible pour vérifier si une clé enterré dans un dict existe sans vérifier chaque niveau indépendamment?
Disons que j'ai besoin d'obtenir cette valeur dans un objet enterré (exemple pris sur Wikidata):
x = s['mainsnak']['datavalue']['value']['numeric-id']
Pour faire en sorte que cela ne se termine pas par une erreur d'exécution, il est nécessaire de vérifier tous les niveau de la sorte:
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']
L'autre manière de penser pour résoudre ce problème est de conclure en try catch
construire ce qui me semble aussi assez bizarre pour une telle tâche simple.
Je suis à la recherche de quelque chose comme:
x = exists(s['mainsnak']['datavalue']['value']['numeric-id'])
qui renvoie True
si tous les niveaux existe.