TypeError: невозможно объединить объекты 'str' и 'instance' (python urllib) - PullRequest
2 голосов
/ 02 ноября 2009

При написании программы на Python я обнаружил эту ошибку при использовании функции 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)

Ответы [ 4 ]

6 голосов
/ 02 ноября 2009

urlopen (url) возвращает файлоподобный объект. Чтобы получить содержимое строки, попробуйте

CPs = CPs + urllib.urlopen(url).read()
2 голосов
/ 02 ноября 2009

urllib.urllopen не возвращает строку, она возвращает объект
документ

If all went well, a file-like object is returned.
1 голос
/ 02 ноября 2009

Проблема в этой строке: CPs = CPs + urllib.urlopen(url) Я предполагаю, CPs - это строка, однако urllib.urlopen(url) возвращает файл как объект.

Если вы хотите объединить содержимое файла на url с CPs, вам нужно сделать что-то вроде этого: CPs = CPs + urllib.urlopen(url).read().

0 голосов
/ 02 ноября 2009

Что такое ХП? Похоже, что это строка. urlopen вернет экземпляр файлового объекта, а не строку. См. - http://docs.python.org/library/urllib.html.

Ошибка выдается не из урлопена, а потому, что вы пытаетесь объединить строку с экземпляром объекта.

...