TypeError: ne peut pas concaténer des objets 'str' et 'instance' (urllib python)

StackOverflow https://stackoverflow.com/questions/1660954

  •  12-09-2019
  •  | 
  •  

Question

L'écriture d'un programme de python, et je suis venu avec cette erreur lors de l'utilisation de la fonction urllib.urlopen.

Traceback (most recent call last):
File "ChurchScraper.py", line 58, in <module>
html = GetAllChurchPages()
File "ChurchScraper.py", line 48, in GetAllChurchPages
CPs = CPs + urllib.urlopen(url)
TypeError: cannot concatenate 'str' and 'instance' objects


 url = 'http://website.com/index.php?cID=' + str(cID)
        CPs = CPs + urllib.urlopen(url)
Était-ce utile?

La solution

urlopen (url) retourne un objet de type fichier. Pour obtenir le contenu de la chaîne, essayez

CPs = CPs + urllib.urlopen(url).read()

Autres conseils

urllib.urllopen ne renvoie pas une chaîne, elle retourne un objet
doc

If all went well, a file-like object is returned.

Le problème est dans cette ligne: CPs = CPs + urllib.urlopen(url) Je suppose CPs est une chaîne mais retourne urllib.urlopen(url) un fichier comme objet

.

Si vous souhaitez rejoindre le contenu du fichier à url avec CPs alors vous devez faire quelque chose comme ceci:. CPs = CPs + urllib.urlopen(url).read()

Qu'est-ce que les PC? On dirait qu'il est une chaîne. urlopen renvoie une instance d'un objet de type fichier, pas une chaîne. Voir - http://docs.python.org/library/urllib.html .

L'erreur n'est pas jeté du urlopen, mais parce que vous essayez de concaténer une chaîne avec une instance d'objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top