如何使Python函数返回对象而不是字符串
我有一个函数:
def getXMLpayload(server):
try:
result = urllib2.urlopen('http://%s' % server, None, 15)
except urllib2.URLError:
return 'unknown'
except:
raise Exception('Unexpected response from server')
return result
我希望它能返回一个 urllib2 对象,这样在另一个函数里我就可以调用这个函数,然后像这样使用它的输出:
xmlPayload = result.read()
tree = ET.ElementTree(ET.fromstring(xmlPayload))
root = tree.getroot()
我觉得现在它返回的是一个字符串,而不是我想要的文件样的对象,也就是 urllib2.urlopen 返回的那种。请问我该怎么做才能让它返回这样的对象呢?
1 个回答
1
你的函数并不是返回一个字符串,而是返回了一个像文件一样的对象。
如果它真的是一个字符串,调用 result.read()
就会出错,因为字符串是没有 read
这个方法的。
一旦读取后,xmlPayload
就变成了一个字符串,你可以把它传给 ET.fromstring
。