gpt4 book ai didi

Python xml ElementTree : find values of only first 3 elements with same name

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:53 25 4
gpt4 key购买 nike

我想解析 xml 响应并将特定数据保存到列表中。

XML

<ack>Success</ack>
<version>1.13.0</version>
<data>
<name>AAAA</name>
<age>00</age>
<data>
<name>BBBB</name>
<age>11</age>
<data>
<name>CCCC</name>
<age>22</age>
.
.
.
.
<data>
<name>ZZZZ</name>
<age>999</age>

我正在使用 ElementTree 来解析 xml。

我的脚本

import requests, xml.etree.ElementTree as ET

e = requests.get('http://sample.com/xml')

#parse the response and get root
eroot = ET.fromstring(e.text)

#iterate over root and extract data
names = [ p.find('name').text for p in eroot.iter('data') ]

print(names)

我可以使用上面的脚本提取所有名称元素,但 xml 响应包含很多名称元素。我只需要前三个名字。

我使用列表理解来减少代码行数。

我的问题

  • 如何仅获取前三个名称而不解析 xml 中的所有名称。
  • 我可以使用任何循环将 p.find 限制为 3 次迭代吗?
  • 还有其他选择吗?

最佳答案

您可以使用itertools.islice() :

from itertools import islice

names = [ p.find('name').text for p in islice(eroot.iter('data'), 0, 3)]

关于Python xml ElementTree : find values of only first 3 elements with same name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com