Loading

Python2.7 Xml转Dict

from lxml import etree


def xmlToDict(node):
    if len(node) == 0:
        return node.tag, node.text

    data = {}
    temp = None
    for child in node:
        key, val = xmlToDict(child)
        if key in data:
            if type(data[key]) == list:
                data[key].append(val)
            else:
                temp = data[key]
                data[key] = [temp, val]
        else:
            data[key] = val

    return node.tag, data


if __name__ == '__main__':
    strxml = "<request><header>top</header><body><stu><name>alex</name><age>11</age></stu><stu><name>alen</name><age>16</age></stu></body></request>"
    tree, id = etree.XMLID(strxml)
    tag, data = xmlToDict(tree)
    print("tag", tag)
    print("data", data)
posted @ 2023-04-18 21:04  北兢王  阅读(23)  评论(0)    收藏  举报