在递归函数中将打印函数的输出存储在列表中

时间:2015-07-01 05:04:48

标签: xml recursion elementtree

def get_leaves(node, list_of_leaves=None):
    list_of_leaves = {} if list_of_leaves is None else list_of_leaves
    kids=node.getchildren()
    for i in kids:
        if (i.getchildren()):
            get_leaves(i, list_of_leaves)
        else:
            list_of_leaves[i.tag]=i.text
    print list_of_leaves
    #data.append(list_of_leaves)    
result = {} 
#data=[]
tree = ET.parse('abc.xml')
root = tree.getroot()
get_leaves(root, list_of_leaves=result)

无论我打印什么,这都是有键的字典,因为标签和值是与标签关联的文本。

我想将这些词典存储在列表中。因此,相应的列表将是许多字典的列表。

注释行显示一个列表“data”,我想在其中存储每个字典。

我正在打印,但如果我按照我现在编写的方式编写它,它只存储最后创建的字典。

0 个答案:

没有答案