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

将Pandas DataFrame转为XML时提示无效标签名的原因

XML转换报错原因及解决办法

问题详情

原始数据结构

Loader      TXN Description    ANUMS    Value Date
67805499    ZZ-OPTR            11504    1/27/2023 23:59
67805499    ZZ-OPTR            33002    1/27/2023 23:59
67805499    ZZ-OPTR            11504    1/27/2023 23:59
67805499    ZZ-OPTR            33002    1/27/2023 23:59
67805501    ZZ-OPTR            11504    1/27/2023 23:59
67805501    ZZ-OPTR            33002    1/27/2023 23:59
67805501    ZZ-OPTR            66666    1/27/2023 23:59

执行代码

import pandas as pd

df= pd.read_csv('C:\Users\ShDalal\Desktop\twosigma.csv')
with open('outputf.xml', 'w') as myfile: 
  myfile.write(df.to_xml())

报错内容

ValueError: Invalid tag name 'Loader TXN ID'

错误原因

XML标签命名有严格规则:不能包含空格。你的DataFrame列名(比如Loader TXN ID、TXN Description、Value Date)都带有空格,而pandas的to_xml()方法默认直接将列名作为XML标签名,这些带空格的名称违反了XML的命名规范,因此触发报错。

解决办法

方案1:修改列名,替换空格为合法字符

直接将DataFrame列名中的空格替换为下划线,规避XML规则限制:

import pandas as pd

df = pd.read_csv('C:\Users\ShDalal\Desktop\twosigma.csv')
# 将所有列名的空格替换为下划线
df.columns = [col.replace(' ', '_') for col in df.columns]
# 生成XML文件
with open('outputf.xml', 'w') as myfile: 
  myfile.write(df.to_xml())

方案2:自定义XML标签名,保留原始列名

如果不想修改原始列名,可通过element_name参数映射合法的标签名:

import pandas as pd

df = pd.read_csv('C:\Users\ShDalal\Desktop\twosigma.csv')
# 为带空格的列名指定对应的合法标签
tag_mapping = {
    'Loader TXN ID': 'Loader_TXN_ID',
    'TXN Description': 'TXN_Description',
    'Value Date': 'Value_Date'
}
# 生成XML时自动替换标签名
with open('outputf.xml', 'w') as myfile: 
  myfile.write(df.to_xml(element_name=lambda col: tag_mapping.get(col, col)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:50:18