在数组中读取和存储XML数据

2024-05-12 23:35:50 发布

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

抱歉,如果这个问题很愚蠢,但我似乎无法解决它。我有一个.xml文件,它看起来像:


<?xml version="1.0" encoding="utf-8"?>
<tags>
  <row Id="1" TagName="bayesian" Count="1342" ExcerptPostId="20258" WikiPostId="20257" />
  <row Id="2" TagName="prior" Count="168" ExcerptPostId="62158" WikiPostId="62157" />
  <row Id="3" TagName="elicitation" Count="6" />
  <row Id="4" TagName="normality" Count="191" ExcerptPostId="67815" WikiPostId="67814" />
  <row Id="5" TagName="open-source" Count="13" />
  <row Id="6" TagName="distributions" Count="1880" ExcerptPostId="8046" WikiPostId="8045" />
  <row Id="9" TagName="machine-learning" Count="2564" ExcerptPostId="9066" WikiPostId="9065" />
  <row Id="10" TagName="dataset" Count="514" ExcerptPostId="20490" WikiPostId="20489" />
  <row Id="11" TagName="sample" Count="219" ExcerptPostId="28276" WikiPostId="28275" />
  <row Id="12" TagName="population" Count="120" ExcerptPostId="69287" WikiPostId="69286" />
  <row Id="15" TagName="measurement" Count="97" ExcerptPostId="66319" WikiPostId="66318" />
  <row Id="16" TagName="scales" Count="157" />

我只需要读取这个.xml文件并将数据存储在数组中,这样我就可以分析它了。我执行以下步骤:

^{pr2}$

不知怎么的,我找不到阅读专栏的步骤。 感谢您的帮助,我对Python和XML非常陌生 普拉卡什


Tags: 文件idversioncounttags步骤bayesianxml
2条回答

^{}是一个函数,您应该调用它来获取根节点的子节点(as-root.getchildren()),尽管它们在python2.7之后就被弃用了。在

您应该遍历根目录,然后将root子目录的属性存储在一个列表中,例如-

listofelems = []
for item in root:
    listofelems.append(item.attrib)
print(listofelems)

迭代root以获取子级。每个子级都有一个名为attribdict成员。在XML中,.attrib成员将包含您需要的所有数据。在

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


tags = {tag.attrib['TagName']:tag.attrib for tag in root}

print tags['bayesian']['WikiPostId']
print tags['scales']['Count']

相关问题 更多 >