如何用Python将XML转换为字典 xmltodict库用法

煙雲
发布: 2025-12-20 10:02:02
原创
242人浏览过
xmltodict 是将 XML 转为 Python 字典最简洁可靠的方式,支持嵌套、属性、文本混合解析,并提供 unparse() 反向生成 XML;需注意编码、类型转换及自定义键名等细节。

如何用python将xml转换为字典 xmltodict库用法

xmltodict 将 XML 转成 Python 字典是最简洁可靠的方式,它能自动处理嵌套、属性、文本内容等常见结构,无需手动解析。

安装与基本用法

先通过 pip 安装库:

pip install xmltodict

最简单的转换只需一行代码:

立即学习Python免费学习笔记(深入)”;

import xmltodict
xml_str = "<root><name>Alice</name><age>30</age></root>"
data = xmltodict.parse(xml_str)

结果是标准的嵌套字典:{'root': {'name': 'Alice', 'age': '30'}}。注意:XML 中的文本值默认为字符串,数字不会自动转类型。

处理 XML 属性和文本混合内容

当标签既有属性又有文本时(如 <item id="101">book</item>),xmltodict 默认把属性存为 @attr 键,文本存为 #text 键:

{"item": {"@id": "101", "#text": "book"}}

西语写作助手
西语写作助手

西语助手旗下的AI智能写作平台,支持西语语法纠错润色、论文批改写作

西语写作助手 21
查看详情 西语写作助手

如需自定义键名,可用参数指定:

  • attr_prefix='_' → 属性变为 _id
  • cdata_key='text' → 文本内容键改为 text
  • force_list=('item',) → 强制将 item 解析为列表(即使只有一个)

读取文件与处理中文/特殊字符

从文件读取时,注意编码(尤其含中文的 XML):

with open("data.xml", "r", encoding="utf-8") as f:
  xml_content = f.read()
data = xmltodict.parse(xml_content)

如果 XML 声明了编码(如 <?xml version="1.0" encoding="gb2312"?>),建议用 open(..., encoding="gb2312") 显式指定,避免乱码或解析失败。

反向操作:字典转 XML

xmltodict.unparse() 可将字典还原为格式化的 XML 字符串:

xml_str = xmltodict.unparse(data, pretty=True)

pretty=True 会自动缩进换行,便于查看;也可加 indent=" " 自定义缩进符。注意:反向生成不保留原始注释或处理指令。

以上就是如何用Python将XML转换为字典 xmltodict库用法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号