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

Python XML转CSV代码生成空文件,请求排查问题及修正

XML转CSV代码错误排查与修复

问题根源

你的代码错误在于混淆了XML元素的属性和子元素:

  • 你提供的XML中,<row>节点的所有数据都存储在属性(如Id、UserId)中,而非子元素里
  • 原代码试图通过root[0].tag和record.find()来获取子元素,这完全不符合当前XML的结构,导致表头为空,数据行也无法读取

修正后的代码

import csv
import xml.etree.ElementTree as ET

def xml_to_csv(xml_file, csv_file):
    # 解析XML文件
    tree = ET.parse(xml_file)
    root = tree.getroot()
    
    # 获取表头:取第一个row的所有属性名
    if not root:
        return
    header = list(root[0].attrib.keys())
    
    # 写入CSV文件
    with open(csv_file, 'w', newline='', encoding='utf-8') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(header)
        # 遍历每个row节点,提取属性值
        for record in root:
            row = [record.attrib[key] for key in header]
            writer.writerow(row)

xml_to_csv("Badges.xml", "Badges.csv")

关键修改点

  • 用root[0].attrib.keys()获取属性名作为表头,而非子元素标签
  • 用record.attrib[key]直接读取属性值,替代原代码中查找子元素的逻辑
  • 增加了encoding='utf-8'确保CSV文件编码正确,避免乱码
  • 增加空XML判断,防止索引越界错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:46:02