使用re.findall时的TypeError

时间:2013-05-29 17:11:18

标签: python regex ipv4

我正在尝试从XML文档中提取IP地址,这是相关的代码。

def traverseNode(node):
    output = node.find(****)
    if output is not None:
        ips = re.findall(r'[0-9]+(?:\.[0-9]+){3}', output)
        for ip in ips:
            print ip
    for child in node.getchildren():
        traverseNode(child)

此代码返回错误TypeError:期望的字符串或缓冲区 关于是什么导致这个的任何想法?提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

确保re.findall(pattern,arg)的第二个arg是一个字符串。您可以使用str(arg)来确保将字符串放在re.findall中。

答案 1 :(得分:0)

所以解决方案是将线路更改为:     output = node.find(' * *')。text