全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python怎么把XML转换成DataFrame Pandas读取XML教程

Python中无稳定版pandas.read_xml()函数,需用xml.etree.ElementTree或lxml解析XML再构DataFrame;关键在于按XML树状结构提取属性与子元素,手动构建字典列表或借助lxml增强的read_xml()实验接口。

Python中没有pandas原生的read_xml()函数(截至pandas 2.0+仍属实验性,不推荐生产环境直接依赖),但可以通过标准库xml.etree.ElementTree或第三方库lxml解析XML,再构造DataFrame。关键在于理解XML结构,并将其映射为二维表格逻辑。

先看XML结构,再决定怎么转

XML不是表格格式,它可能是嵌套、属性混合、重复节点并存的树状结构。强行“一键转DataFrame”容易出错。例如:


  
    Python Crash Course
    Eric Matthes
    39.99
  
  
    Fluent Python
    Luciano Ramalho
    49.99
  

这个例子中:每本是1行;id是属性;是子元素;既有文本值又有currency属性——你需要明确哪些信息要进列。

用ElementTree手动解析(轻量、无需额外安装)

适合结构清晰、层级较浅的XML。步骤:加载 → 找到所有记录节点 → 提取字段 → 构建字典列表 → 转DataFrame。

  • 导入xml.etree.ElementTree as ETpandas
  • ET.parse("file.xml")ET.fromstring(xml_str)加载
  • root.findall(".//book")定位每一行数据节点(XPath支持有限,但够用)
  • 对每个book节点:
      – 用book.get("id")取属性
      – 用book.find("title").text取子元素文本
      – 用book.find("price").textbook.find("price").get("currency")分别取值和属性
  • 把每次提取的结果append进list,最后pd.DataFrame(list_of_dicts)

用lxml + pandas.read_xml(仅限pandas ≥ 1.4,需lxml支持)

如果你的XML是扁平的、每条记录同级且标签名一致(如上面的),可以尝试pandas内置实验接口:

  • 安装依赖:pip install lxmlxml.etree不支持XPath 2.0,lxml更强大)
  • 调用:pd.read_xml("books.xml", xpath=".//book")
  • 支持参数:attrs_only=True只读属性;names=["id", "title", "author"]重命名列;iterparse=True处理大文件(逐块解析)
  • 注意:read_xml()默认忽略属性,若要保留,得配合stylesheet(XSLT)或先用lxml预处理

处理常见坑点

空值/缺失子节点:用find()可能返回None,直接调.text会报错 → 改用find("xxx") is not None and find("xxx").text,或封装安全取值函数。
命名空间(ns):XML带xmlns="http://..."时,XPath必须声明前缀,例如root.findall(".//ns:book", namespaces={"ns": "http://..."})
大文件内存溢出:别用ET.parse()全量加载,改用ET.iterparse()边读边处理,或用lxml.etree.iterparse()events=("start", "end")流式解析。


# python  # app  # xml解析  # 标准库 


相关文章: 建站主机数据库如何配置才能提升网站性能?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  文字头像制作网站推荐软件,醒图能自动配文字吗?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站VPS配置与SEO优化指南:关键词排名提升策略  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  TestNG的testng.xml配置文件怎么写  如何选择高效可靠的多用户建站源码资源?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  公司网站设计制作厂家,怎么创建自己的一个网站?  高端网站建设与定制开发一站式解决方案 中企动力  宝塔建站后网页无法访问如何解决?  如何快速搭建自助建站会员专属系统?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  重庆市网站制作公司,重庆招聘网站哪个好?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  南京网站制作费用,南京远驱官方网站?  常州自助建站费用包含哪些项目?  如何在建站之星网店版论坛获取技术支持?  建站之星客服服务时间及联系方式如何?  学校为何禁止电信移动建设网站?  网站企业制作流程,用什么语言做企业网站比较好?  小型网站建站如何选择虚拟主机?  如何在橙子建站中快速调整背景颜色?  如何选择高效响应式自助建站源码系统?  制作网站的模板软件,网站怎么建设?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  网页设计网站制作软件,microsoft office哪个可以创建网页?  孙琪峥织梦建站教程如何优化数据库安全?  建站之星代理如何获取技术支持?  如何快速辨别茅台真假?关键步骤解析  实例解析angularjs的filter过滤器  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  网站制作报价单模板图片,小松挖机官方网站报价?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  深圳网站制作培训,深圳哪些招聘网站比较好?  济南网站制作的价格,历城一职专官方网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  建站VPS能否同时实现高效与安全翻墙?  教程网站设计制作软件,怎么创建自己的一个网站?  建站之星好吗?新手能否轻松上手建站?  制作网页的网站有哪些,电脑上怎么做网页?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  实例解析Array和String方法  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  免费公司网站制作软件,如何申请免费主页空间做自己的网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。