【发布时间】:2020-12-17 18:14:05
【问题描述】:
我有一个基本的 xml 文件,名为 foods.xml,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<meals name="Sample Text">
<meal id="1" name="Poached Eggs" type="breakfast"/>
<meal id="2" name="Club Sandwich" type="lunch"/>
<meal id="3" name="Steak" type="dinner"/>
<meal id="4" name="Steak" type="dinner"/>
</meals>
我想将 'id' 和 'name' 属性提取到数据框中。我可以在指定一列和一个属性时提取一个(例如,仅名称),但似乎无法弄清楚在 for 循环中获取多个属性的语法。这是我尝试过的,将 id 添加到“df_cols”和“attrib.get”函数中:
import xml.etree.ElementTree as ET
import pandas as pd
root = ET.parse('meals.xml').getroot()
df_cols = ["id", "name"]
rows = []
for node in root:
value = node.attrib.get('id', 'name')
rows.append(value)
df = pd.DataFrame(rows, columns = df_cols)
df
有人可以建议如何做到这一点吗?
【问题讨论】:
标签: python xml pandas dataframe