我有一个功能:
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 返回的内容?
答案 0 :(得分:1)
您的函数不返回字符串,而是返回类似文件的对象。
如果确实是字符串,result.read()
会引发错误,因为字符串没有方法read
。
阅读后,xmlPayload
是一个字符串,您可以将其传递给ET.fromstring
。