【发布时间】:2021-11-27 17:17:24
【问题描述】:
<avis>
<numeroseao>1331795</numeroseao>
<numero>61628-3435560</numero>
<organisme>Ville de Québec</organisme>
<fournisseurs>
<fournisseur>
<nomorganisation>APEL ASSOCIATION POUT DU LA MARAISNORD</nomorganisation>
<adjudicataire>1</adjudicataire>
<montantsoumis>0.000000</montantsoumis>
<montantssoumisunite>0</montantssoumisunite>
<montantcontrat>89732.240000</montantcontrat>
<montanttotalcontrat>0.000000</montanttotalcontrat>
</fournisseur>
</fournisseurs>
</avis>
所以有 avis,avis 有fournisseurs,fournisseurs 有更多的节点。如何将这些值放入数据框?
我正在使用下面的代码
element_tree = ET.parse('D:\\python_script\\temp2\\AvisRevisions_20200201_20200229.xml')
root = element_tree.getroot()
for child in root.findall('.//avis/*/*/*'):
或
for child in root.findall('.//avis/*'):
但它只能让我获得父节点或子节点,而不是全部。
【问题讨论】:
-
"但它只能获取父节点或子节点,而不是全部。"我注意到您已经尝试过
'.//avis/*'(一个/*)和'.//avis/*/*/*'(三个/*s)。也许您可以想到介于两者之间的替代方案?你试过了吗? -
欢迎来到 Stack Overflow。请尝试创建一个stackoverflow.com/help/minimal-reproducible-example。如果您使用的是 Pandas,那么您应该标记它,并且您应该显示您在循环中使用的代码,以尝试创建您提到的 Dataframe。如果您只想创建一个 Dataframe,我不清楚您为什么要编写一个循环。
标签: python python-3.x xml elementtree