我的XML文件遇到问题。我希望实现与中相同的问题:https://www.delftstack.com/howto/python/xml-to-csv-python/
但是,我的XML文件看起来有点不同,例如:
<students>
<student name="Rick Grimes" rollnumber="1" age="15"/>
<student name="Lori Grimes" rollnumber="2" age="16"/>
<student name="Judith Grimes" rollnumber="4" age="13"/>
</students>
链接中指定的代码不适用于此格式。
from xml.etree import ElementTree
tree = ElementTree.parse("input.xml")
root = tree.getroot()
for student in root:
name = student.find("name").text
roll_number = student.find("rollnumber").text
age = student.find("age").text
print(f"{name},{roll_number},{age}")
我有很少的编码经验,所以希望有人在这里可以帮助我。
预期结果:
里克·格里姆斯,1,15洛里·格里姆斯,2,16卡尔·格里姆斯,3,14朱迪思·格里姆斯,4,13
实际结果:
属性错误:"NoneType"对象没有属性"text"
4条答案
按热度按时间dkqlctbz1#
text
指的是标签的实际文本。由于您的标签正在自动关闭,因此您没有任何标签。您要查找的是标签属性
attrib
:医生在这里像这样的东西应该可以帮助你得到你正在寻找的:
esyap4oy2#
如果没有任何文本可供获取,则无法获取文本,而是希望使用
.attrib[key]
,因为您将值作为属性。我已经修改了您的示例,以便它可以使用您的XML文件。
希望这对你有帮助。
mzillmmw3#
结果
eni9jsuy4#
对于这样简单的结构化XML,您还可以使用panda的内置函数,代码分为两行:
输出:
使用选项
header=False
,您还可以关闭以将头文件写入csv文件。