如何使用Python高效地将XML文件创建为表格?

2024-06-16 12:16:29 发布

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

我正在努力为下面的问题找到最好的解决办法。我使用Python获取一个xml文件,搜索我感兴趣的元素并返回它们的相关值。如果缺少元素,则返回null、none或等效值

目前,我正在使用lxml和xpath语法,但是我们发现它非常慢,因为我必须循环许多相同的元素,以便在python中测试值是否存在

我正在使用xpath创建一个自定义词典,然后我可以将其中的内容扁平化为类似Pandas的内容

示例结构为:


Holding 1 - Contains 3 children

<Holding id = 1>
  <Name> x </Name>
  <Date> x </Date>
  <Flavour> x </Flavour>
</Holding>

Holding 2 - Contains only two children 

<Holding id = 2>
  <Name> y </Name>
  <Date> y </Date>
</Holding>

我需要的东西,如果味道缺失,返回一个默认值

如果我只是选择从每个holding中提取所有文本,我会以不同长度的值结束

列出一个将有名称,日期,风味的值。 列表2只包含Name和Date的值

下面是一个例子。我看了每一个投资组合,每个持有和收回的排名文本

Dict['Rank'] = root.xpath(f'//ns:Portfolio[{each_portfolio + 1}]/ns:Holdings/*[{each_holding + 1}]/ns:Rank/text()', namespaces = {'ns' : nsurl}))

任何帮助都将不胜感激


Tags: name文本id元素内容datexpatheach