You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中XML扁平化:将外层标签属性赋予内层标签

解决方法

你需要先遍历每个 <period> 元素获取其 number 属性值,再遍历该周期下的所有 <play> 元素,将周期编号添加到每个 play 的属性字典中,这样就能保留每个 play 所属的周期信息。

修改后的代码如下:

import pandas as pd
import xml.etree.ElementTree as ET

# 假设已解析XML文件得到root对象
# tree = ET.parse('your_file.xml')
# root = tree.getroot()

d = []
# 先遍历每个period元素
for period in root.iter('period'):
    period_number = period.get('number')  # 获取周期编号
    # 遍历当前period下的所有play元素
    for play in period.findall('play'):
        play_attrs = play.attrib.copy()  # 复制play的属性字典
        play_attrs['period_number'] = period_number  # 添加周期编号属性
        d.append(play_attrs)

df = pd.DataFrame(d)

说明

  • 通过先遍历 <period> 再遍历其子 <play>,能明确每个 play 所属的周期上下文,避免丢失层级关联。
  • 使用 play.attrib.copy() 是为了避免修改原XML元素的属性字典,保证数据独立性。
  • 若需要将周期编号转为整数类型,可修改为 period_number = int(period.get('number'))。

内容的提问来源于stack exchange,提问作者bblackburn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:05:19