首页 > 解决方案 > 循环不返回数据

问题描述

我的代码只循环一次然后只返回一个数据。下面是我的代码

def test():

for element_regFile in root.findall('country'):
    csvdataElement=[]

    filename=element_regFile.find('name')
    if filename != None:
        filename=filename.text
    else:
        filename='None'
    csvdataElement.append(filename)

    return csvdataElement

然后,我想一一打印函数的输出,如下所示:

print test()
>>>> [London]
>>>> [Paris]

打印语句将在函数之外

下面是我的xml:

    ?xml version="1.0"?>
<data>
    <country >
        <name>London</name>
        <rank>1</rank>
        <abc>123</abc>
        <year>2008</year>
        <gdppc>141100</gdppc>
    </country>
        <country >
        <name>Paris</name>
        <rank>1</rank>
        <year>2010</year>
        <gdppc>68000</gdppc>
    </country>
</data>

它应该返回伦敦和巴黎。但不幸的是,它只返回伦敦。

标签: pythonloopsfor-loop

解决方案


这是缩进问题。print语句应该有相同的缩进,如for

for element_regFile in root.findall('country'):
    csvdataElement=[]

    filename=element_regFile.find('name')
    if filename != None:
        filename=filename.text
    else:
        filename='None'
    csvdataElement.append(filename)

print(csvdataElement)

推荐阅读