IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

erreur Noeud Xml manquant


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    prof d'histoire ?!?
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : prof d'histoire ?!?

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Points : 19
    Points
    19
    Par défaut erreur Noeud Xml manquant
    Bonjour à tous,

    Je continue d'apprendre Python avec de petits programmes, ici parser les XML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import urllib
    from lxml import etree
     
     
    file = "http://thetvdb.com/api/GetSeries.php?seriesname=macgyver"
     
    root = etree.parse(urllib.urlopen(file))
     
    for name in root.findall("Series"):
        id = name.find('seriesid').text
        srn = name.find('SeriesName').text
        ntw = name.find('Network').text
        print id, srn, ntw
    Mon problème : ma variable ntw pointe vers le nœud Network qui n'existe pas toujours, ce qui crée une erreur.
    Comment intercepter cette erreur et faire en sorte que le programme continue sans erreurs ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par nina29000 Voir le message
    Comment intercepter cette erreur et faire en sorte que le programme continue sans erreurs ?
    Si vous utilisez une méthode comme .find('Network'), la documentation lxml doit vous indiquer ce qui se passe lorsque "Network" n'est pas trouvé. Au pire, vous lancez la console Python et vous regardez ce qu'il se passe. Ca peut faire 2 choses: remonter une exception (mais vous l'auriez raconté dans votre message) ou retourner None i.e., dans ce cas, vous devez avoir une erreur comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: 'NoneType' object has no attribute 'text'
    Et donc il faut tester ce que retourne name.find('Network') avant de tenter de récupérer le champ "text".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Femme Profil pro
    prof d'histoire ?!?
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : prof d'histoire ?!?

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Effectivement j'avais bien le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: 'NoneType' object has no attribute 'text'
    j'ai modifié le code ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        if ntw is None:
            ntw = ""
        else:
            ntw = ntw.text
    Peut être cela pourra aider quelqu'un.

    merci wiztricks

Discussions similaires

  1. [Ajout noeud xml] comment ça marche?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 37
    Dernier message: 19/07/2007, 22h46
  2. [FLASH 8] Sélection noeud xml
    Par bractar dans le forum Flash
    Réponses: 4
    Dernier message: 11/01/2006, 11h17
  3. [msxml]noeuds XML: Entity Reference
    Par ep31 dans le forum Valider
    Réponses: 4
    Dernier message: 04/11/2005, 17h24
  4. Réponses: 3
    Dernier message: 01/04/2005, 09h37
  5. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo