如何让python函数返回对象而不是字符串

时间:2014-03-07 17:39:37

标签: python xml function urllib2

我有一个功能:

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 个答案:

答案 0 :(得分:1)

您的函数不返回字符串,而是返回类似文件的对象。

如果确实是字符串,result.read()会引发错误,因为字符串没有方法read

阅读后,xmlPayload是一个字符串,您可以将其传递给ET.fromstring