TypeError: cannot concatenate 'str' and 'instance' objects (python urllib)

早过忘川 提交于 2019-12-23 00:39:33

问题


Writing a python program, and I came up with this error while using the urllib.urlopen function.

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)

回答1:


urlopen(url) returns a file-like object. To obtain the string contents, try

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



回答2:


urllib.urllopen doesn't return a string, it returns an object
doc

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



回答3:


The problem is in this line: CPs = CPs + urllib.urlopen(url) I assume CPs is a string however urllib.urlopen(url) returns a file like object.

If you want to join the contents of the file at url with CPs then you need to do something like this: CPs = CPs + urllib.urlopen(url).read().




回答4:


What is CPs? It looks like it is a string. urlopen will return an instance of a file-like object, not a string. See - http://docs.python.org/library/urllib.html.

The error is not thrown from the urlopen, but because you are trying to concatenate a string with an object instance.



来源:https://stackoverflow.com/questions/1660954/typeerror-cannot-concatenate-str-and-instance-objects-python-urllib

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!