Vérifiez les valeurs du dictionnaire imbriqué?
Pour une grande liste de dictionnaires imbriqués, je veux vérifier si elles contiennent ou non une clé.
Chacun d'eux peut ou ne peut pas avoir l'un des dictionnaires imbriqués, donc si je boucle cette recherche par le biais de tous génère une erreur:
for Dict1 in DictionariesList:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
Ma solution pour l'instant est:
for Dict1 in DictionariesList:
if "Dict2" in Dict1:
if "Dict3" in Dict1['Dict2']:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
Mais c'est un mal de tête, le laid, et probablement pas très efficace des ressources.
Ce qui serait le bon moyen de le faire dans le premier type de la mode, mais sans générer une erreur lorsque le dictionnaire n'existent pas?
source d'informationauteur I want badges
Vous devez vous connecter pour publier un commentaire.
Utilisation
.get()
avec vide dictionnaires par défaut:Si le
Dict2
clé n'est pas présente, un dictionnaire vide est retournée, de sorte que la prochaine enchaîné.get()
ne sera également pas trouverDict3
et retourner un dictionnaire vide à son tour. Lein
test, puis retourneFalse
.L'alternative est de il suffit de prendre la
KeyError
:Comment faire un try/except bloc:
Voici une généralisation pour un nombre arbitraire de touches:
Basé sur Python: Changer les valeurs dans le dict de imbriquée dicts utiliser des éléments dans une liste.