gpt4 book ai didi

python - 尝试直接从 URL 解析 XML

转载 作者:行者123 更新时间:2023-12-05 03:04:05 25 4
gpt4 key购买 nike

我正在查看这个 XML:

https://data.cityofnewyork.us/api/views/25th-nujf/rows.xml

我以为我可以使用下面的代码从列表中解析出“ethcty”和“cnt”项,但实际上我什么也没得到。

import xml.etree.ElementTree as ET
tree = ET.parse('https://data.cityofnewyork.us/api/views/25th-nujf/rows.xml')
root = tree.getroot()

for child in root:
print(child.tag, child.attrib)

for _id in root.findall('_id'):
rank = _id.find('ethcty').text
name = _id.get('cnt')
print(name, rank)

我正在关注以下 URL 中的示例。

https://docs.python.org/3.4/library/xml.etree.elementtree.html

最佳答案

response 元素里面有一个 row 元素,所以你的 for 循环应该在 root[0] 而不是 root

这是您的代码段中的示例,希望它能帮助您理解问题

import xml.etree.ElementTree as ET
tree = ET.parse('rows.xml')
root = tree.getroot()

for _id in root[0].findall('row'):
rank = _id.find('ethcty').text
name = _id.find('cnt').text
print(name, rank)

另外,findall 应该是你想要的节点的名字

至于直接从 url 加载你应该使用 urllib 如下:

from urllib.request import urlopen
import xml.etree.ElementTree as ET

with urlopen('https://data.cityofnewyork.us/api/views/25th-nujf/rows.xml') as f:
tree = ET.parse(f)
root = tree.getroot()

for _id in root[0].findall('row'):
rank = _id.find('ethcty').text
name = _id.find('cnt').text
print(name, rank)

我编辑了后面的代码,因为我忘记了从你的问题的 URL 部分加载,我很抱歉

关于python - 尝试直接从 URL 解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53212932/

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