从XML中获取字典列表和单个项的值

2024-09-27 23:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从XML文件中获取信息。我正试图用ElementTree实现这一点,但是我目前所做的似乎打破了python中的xml结构。你知道吗

这里是XML:

<?xml version="1.0" encoding="UTF-8"?>
<TrainingCenterDatabase>
    <Activities>
        <Activity>
            <Id>2018-05-23</Id>
            <Lap>
                <TotalTimeSeconds>19204.0</TotalTimeSeconds>
                <MaximumHeartRateBpm>
                    <Value>137</Value>
                </MaximumHeartRateBpm>
                <Track>
                    <Trackpoint>
                        <Time>2018-05-23</Time>
                        <HeartRateBpm>
                            <Value>79</Value>
                        </HeartRateBpm>
                        <SensorState>Present</SensorState>
                    </Trackpoint>
                    <Trackpoint>
                        <Time>2018-05-23</Time>
                        <HeartRateBpm>
                            <Value>80</Value>
                        </HeartRateBpm>
                        <SensorState>Present</SensorState>
                    </Trackpoint>
                </Track>
            </Lap>            
        </Activity>
    </Activities>
</TrainingCenterDatabase>

我真正简单的代码如下:

e = ET.parse('fileName.xml').getroot()
e = e.find('./Activities/Activity/Lap/Track')    
print(e)

此代码返回以下错误:

AttributeError: 'NoneType' object has no attribute 'iter'

我已经阅读了文档和一些关于堆栈的问题,如1。我的最终输出将是一些包含一次性信息的变量,如:MaximumHeartRateBpm、TotalTimeSeconds和Id。此外,我还希望获得具有以下结构的跟踪项的字典列表:

[{"Time": val, "HeartRateBpm": val, "SensorState": val},
...,
{"Time": val, "HeartRateBpm": val, "SensorState": val}]

我无法尝试第二种方法,因为我无法查看xml。你知道吗

谢谢你。你知道吗


Tags: idtimevaluetrackvalxmlactivityactivities

热门问题