xmltodict 是将 XML 转为 Python 字典最简洁可靠的方式,支持嵌套、属性、文本混合解析,并提供 unparse() 反向生成 XML;需注意编码、类型转换及自定义键名等细节。

用 xmltodict 将 XML 转成 Python 字典是最简洁可靠的方式,它能自动处理嵌套、属性、文本内容等常见结构,无需手动解析。
先通过 pip 安装库:
pip install xmltodict
最简单的转换只需一行代码:
立即学习“Python免费学习笔记(深入)”;
import xmltodictxml_str = "<root><name>Alice</name><age>30</age></root>"data = xmltodict.parse(xml_str)
结果是标准的嵌套字典:{'root': {'name': 'Alice', 'age': '30'}}。注意:XML 中的文本值默认为字符串,数字不会自动转类型。
当标签既有属性又有文本时(如 <item id="101">book</item>),xmltodict 默认把属性存为 @attr 键,文本存为 #text 键:
{"item": {"@id": "101", "#text": "book"}}
如需自定义键名,可用参数指定:
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") 显式指定,避免乱码或解析失败。
用 xmltodict.unparse() 可将字典还原为格式化的 XML 字符串:
xml_str = xmltodict.unparse(data, pretty=True)
pretty=True 会自动缩进换行,便于查看;也可加 indent=" " 自定义缩进符。注意:反向生成不保留原始注释或处理指令。
以上就是如何用Python将XML转换为字典 xmltodict库用法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号