用P读取XML文件

2024-09-27 19:20:21 发布

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

我试图将XML文件中的信息解析成一个已经用Petl从另一个CSV文件创建的表中,并且在fromxml()函数的语法方面遇到了问题。在

XML文件包含:

    <Locations>
  <qld_location>
    <Suburb>Brisbane-Central</Suburb>
    <Lat>-27.46758</Lat>
    <Long>153.027892</Long>
  </qld_location>
  <qld_location>
    <Suburb>Robertson</Suburb>
    <Lat>-27.565733</Lat>
    <Long>153.057213</Long>
  </qld_location>
  <qld_location>
    <Suburb>Logan-Village</Suburb>
    <Lat>-27.767054</Lat>
    <Long>153.116881</Long>
  </qld_location>
</Locations>

我现在有一张桌子:

^{pr2}$

并希望在XML文件的新列中添加经度和纬度。在

我正在尝试使用函数:

table1= (etl.fromxml('QLD_Locations.xml', 'Locations', 'qld_location', 'Suburb', 'Lat', 'Long')

但是我很难理解这种XML语法所需要的参数。在

如有任何帮助我们将不胜感激,谢谢。在


Tags: 文件csv函数信息语法locationxmllong
1条回答
网友
1楼 · 发布于 2024-09-27 19:20:21

.fromxml()的“flat”参数列表仅在您还具有一种扁平类型的XML结构时有效,其中所有数据列都具有相同的名称:

<ROOT>
  <RECORD>
    <DATA /><DATA /><DATA /><DATA /><DATA />
  </RECORD>
</ROOT>

这可以提取为

^{pr2}$

要从具有各种列名或嵌套的更复杂的结构中提取数据,请执行以下操作:

<ROOT>
  <RECORD>
    <A /><B /><C /><D /><E />
  </RECORD>
</ROOT>

在这里,必须使用dict显式指定要提取的每个列:

etl.fromxml('file.xml', 'RECORD', {
    'Column 1': 'A',
    'Column 2': 'B',
    'Column 3': 'C',
    'Column 4': 'D',
    'Column 5': 'E',
})

其中“A”、“B”、“C”等是与RECORD相关的XPath表达式。在

相关问题 更多 >

    热门问题