160 votes

Je veux gérer l'exception "index de la liste hors de la plage".

J'utilise BelleSoupe et l'analyse de certains HTML.

J'obtiens certaines données de chaque HTML. (en utilisant la boucle for) et d'ajouter ces données à une certaine liste.

Le problème est que certains des HTML ont un format différent. (et ils n'ont pas les données que je veux dedans) .

Donc, j'ai essayé d'utiliser la gestion des exceptions et d'ajouter de la valeur. null à la liste (Je devrais le faire puisque la séquence des données est importante).

Par exemple, j'ai un code comme :

soup = BeautifulSoup(links)
dlist = soup.findAll('dd', 'title')
# I'm trying to find content between <dd class='title'> and </dd>
gotdata = dlist[1]
# and what i want is the 2nd content of those
newlist.append(gotdata)
# and I add that to a newlist

et certains liens n'ont aucune <dd class='title'> donc ce que je veux faire, c'est ajouter la chaîne de caractères null à la place de la liste.

L'erreur apparaît :

list index out of range.

Ce que j'ai essayé de faire est d'ajouter quelques lignes comme ceci :

if not dlist[1]:  
   newlist.append('null')
   continue

Mais ça ne marche pas. Il y a toujours une erreur :

list index out of range.

Que dois-je faire à ce sujet ? Dois-je utiliser le traitement des exceptions ? ou existe-t-il un moyen plus simple ?

Des suggestions ? Toute aide serait la bienvenue !

0voto

Gouled Med Points 23
for i in range (1, len(list))
    try:
        print (list[i])

    except ValueError:
        print("Error Value.")
    except indexError:
        print("Erorr index")
    except :
        print('error ')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X