如何使Python函数返回对象而不是字符串

0 投票
1 回答
1367 浏览
提问于 2025-04-17 21:20

我有一个函数:

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

撰写回答