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

Pandas调用read_xml报无属性AttributeError的问题咨询

报错信息

AttributeError: module 'pandas' has no attribute 'read_xml'

报错原因
  • pandas.read_xml是pandas 1.3.0版本新增的IO方法,运行依赖第三方解析库lxml,如果升级pandas时没有同步安装该依赖,或者旧版本pandas卸载不彻底存在文件残留,就会触发该属性不存在的报错。
  • 测试的第二种调用方式本身存在参数错误:直接传入XML格式字符串时,pandas会默认把字符串识别为文件路径,即使方法正常加载也会报文件不存在的错误。
解决方案

修复原生pandas.read_xml调用

  1. 先彻底卸载现有pandas和相关依赖,再重新安装匹配版本和必备解析库,执行以下命令:
pip uninstall -y pandas lxml
pip install pandas==1.3.4 lxml
  1. 安装完成后执行验证代码,返回True即代表方法加载正常:
import pandas as pd
print(hasattr(pd, 'read_xml'))
  1. 两种正确的调用写法:
  • 直接传入本地文件路径:
import pandas as pd
# 注意核对文件路径、文件名正确性,后缀不影响解析
df = pd.read_xml('xmltest.xml')
  • 传入读取到的XML字符串内容时,需要用io.StringIO包装后再传入:
from pathlib import Path
import pandas as pd
from io import StringIO

txt = Path('xmltest.xml').read_text(encoding='utf-8')
df = pd.read_xml(StringIO(txt))

替代方案(原生方法无法修复时使用)

如果重装后依然无法调用read_xml,可以直接用第三方封装库pandas_read_xml实现一键XML转DataFrame,无需手动迭代解析节点,对复杂嵌套XML的兼容性优于早期版本pandas的原生实现:

  1. 安装库:
pip install pandas_read_xml
  1. 调用示例:
import pandas_read_xml as pdx
from io import StringIO

# 直接读取本地文件
df = pdx.read_xml('xmltest.xml')

# 读取XML字符串内容
txt = """<root><row><id>1</id><name>test</name></row></root>"""
df = pdx.read_xml(StringIO(txt))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:03:25