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

使用Python将XML元素及子元素属性转换为CSV格式

没问题!我来帮你把这段XML数据转换成以时间列为开头的CSV格式,操作起来很简单,咱们一步步来:

步骤1:明确转换后的CSV格式

我们把每个时间点的所有插槽数据整合到一行,表头顺序优先以时间戳开头,后续依次对应各插槽的计数和错误数:

  • Timestamp(时间戳)
  • Slot1_Count、Slot1_Error(插槽1的计数和错误数)
  • Slot2_Count、Slot2_Error(插槽2的计数和错误数)
  • Slot3_Count、Slot3_Error(插槽3的计数和错误数)
步骤2:用Python脚本实现转换

下面是一段可以直接运行的Python代码,它会自动解析XML并生成符合要求的CSV文件:

import xml.etree.ElementTree as ET
import csv

# 你的XML数据
xml_data = '''<Slot_Data Timestamp="08-18-2017 07:03:20.890"> <Slot Id="1" Count="23" Error="4" /> <Slot Id="2" Count="31" Error="0" /> <Slot Id="3" Count="27" Error="2" /> </Slot_Data> <Slot_Data Timestamp="08-18-2017 07:55:54.574"> <Slot Id="1" Count="21" Error="0" /> <Slot Id="2" Count="23" Error="3" /> <Slot Id="3" Count="34" Error="1" /> </Slot_Data>'''

# 给XML添加根节点以便正常解析
xml_root = ET.fromstring(f'<root>{xml_data}</root>')

# 定义CSV表头
csv_headers = [
    'Timestamp',
    'Slot1_Count', 'Slot1_Error',
    'Slot2_Count', 'Slot2_Error',
    'Slot3_Count', 'Slot3_Error'
]

# 整理需要写入CSV的数据行
rows = []
for slot_data in xml_root.findall('Slot_Data'):
    timestamp = slot_data.get('Timestamp')
    row_dict = {'Timestamp': timestamp}
    # 提取每个插槽的计数和错误数
    for slot in slot_data.findall('Slot'):
        slot_id = slot.get('Id')
        row_dict[f'Slot{slot_id}_Count'] = slot.get('Count')
        row_dict[f'Slot{slot_id}_Error'] = slot.get('Error')
    # 按表头顺序整理成列表格式
    rows.append([row_dict[header] for header in csv_headers])

# 写入CSV文件
with open('slot_data.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(csv_headers)
    writer.writerows(rows)

print("CSV文件已成功生成!")
步骤3:最终生成的CSV内容

运行上述代码后,你会得到一个名为slot_data.csv的文件,内容如下:

Timestamp,Slot1_Count,Slot1_Error,Slot2_Count,Slot2_Error,Slot3_Count,Slot3_Error
08-18-2017 07:03:20.890,23,4,31,0,27,2
08-18-2017 07:55:54.574,21,0,23,3,34,1

这样的格式完全符合你“以时间相关列开头”的要求,后续不管是用Excel打开查看还是做数据分析都很方便~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:49:16