8
votes

Vérifier l'existence de la touche YAML

J'utilise Pyyaml ​​pour travailler avec des fichiers YAML. Je me demande comment je peux vérifier correctement l'existence de certaines touches? Dans l'exemple ci-dessous, la touche code> TITLE code> n'est présente que pour la liste1. Je souhaite traiter correctement la valeur du titre s'il existe et ignore s'il n'est pas là.

list1:
    title: This is the title
    active: True
list2:
    active: False


0 commentaires

3 Réponses :


15
votes

Une fois que vous avez chargé ce fichier avec pyyaml, il aura une structure comme ceci: xxx

Vous pouvez l'itération avec: xxx


0 commentaires

10
votes

Si vous utilisez yaml.load code>, le résultat est un dictionnaire, vous pouvez donc utiliser dans code> pour vérifier si une clé existe:

import yaml

str_ = """
list1:
    title: This is the title
    active: True
list2:
    active: False
"""

dict_ = yaml.load(str_)
print dict_

print "title" in dict_["list1"]   #> True
print "title" in dict_["list2"]   #> False


0 commentaires

1
votes

Old Post, mais au cas où il aide toute autre personne - à Python3: xxx

Vous pouvez utiliser my_yaml.items () au lieu de itéritems ( ) . Vous pouvez également regarder des valeurs directement aussi avec my_yaml.values ​​() .


0 commentaires