AttributeError: 'NoneType' object n'a pas d'attribut "split"
J'ai un script avec ces deux fonctions:
# Getting content of each page
def GetContent(url):
response = requests.get(url)
return response.content
# Extracting the sites
def CiteParser(content):
soup = BeautifulSoup(content)
print "---> site #: ",len(soup('cite'))
result = []
for cite in soup.find_all('cite'):
result.append(cite.string.split('/')[0])
return result
Quand je lance le programme j'ai le message d'erreur suivant:
result.append(cite.string.split('/')[0])
AttributeError: 'NoneType' object has no attribute 'split'
Échantillon De Sortie:
URL: <URL That I use to search 'can be google, bing, etc'>
---> site #: 10
site1.com
.
.
.
site10.com
URL: <URL That I use to search 'can be google, bing, etc'>
File "python.py", line 49, in CiteParser
result.append(cite.string.split('/')[0])
AttributeError: 'NoneType' object has no attribute 'split'
Pouvez-vous donner l'exemple d'entrée pour le contenu du paramètre?
Comment puis-je me débarrasser de cette erreur?
Assurez-vous que
Afin de fournir des réponses, vous devez nous dire ce qui est
cite.string
est de vous rendre un NoneType
Comment puis-je me débarrasser de cette erreur?
Assurez-vous que
cite.string
a des valeurs propres à chaque itération. De les valider avant de les appliquer split
fonction.Afin de fournir des réponses, vous devez nous dire ce qui est
cite
objet et ce qui ne cite.string
retour.OriginalL'auteur MLSC | 2014-09-17
Vous devez vous connecter pour publier un commentaire.
Il peut arriver, que la chaîne a rien à l'intérieur, qu'il est "None", donc ce que je peux supposer est de vérifier d'abord si votre chaîne n'est pas "Aucun"
Pour la vérification de
NoneType
, il est préférable d'utiliseris
ouis not
plutôt que==
ou!=
Oui je suis d'accord avec, il n'était pas si pythonic.
OriginalL'auteur user1767754
J'ai aussi l'erreur:
TypeError: object of type 'NoneType' has no len()
.. je pense que je devrais supprimeror (len(cite.string) == 0))
... oui?Vous pouvez supprimer que. Mais à len vérification a été faite intentionnellement en second lieu à Aucun chèque de sorte qu'Aucun des objets ne sont pas vérifiées pour len.
OriginalL'auteur cppcoder