用 xmltodict + pyyaml 是最简洁可靠的 XML 转 YAML 方案:xmltodict 将 XML 解析为嵌套字典(属性转 @ 开头键,重复标签转列表),PyYAML 再格式化输出为可读 YAML;支持文件读写、UTF-8 编码和异常处理。

用 Python 将 XML 转为 YAML,核心思路是:先解析 XML 成 Python 原生数据结构(如字典、列表),再用 YAML 库将其序列化输出。关键在于 XML 结构到嵌套字典的合理映射,而非简单字符串替换。
用 xmltodict + pyyaml 是最简洁可靠的方式
xmltodict 能把 XML 树直接转成接近 JSON 的嵌套字典(保留属性、文本、子元素关系),PyYAML 则负责把字典格式化输出为可读 YAML。两者配合,几行代码就能完成转换。
- 安装依赖:
pip install xmltodict pyyaml - 基础示例(字符串输入):
import xmltodict import yaml <p>xml_str = '''<person id="123"> <name>Alice</name> <age>30</age> <hobbies> <hobby>reading</hobby> <hobby>swimming</hobby> </hobbies> </person>'''</p><h1>解析 XML → OrderedDict → 转普通 dict(可选)</h1><p>data = xmltodict.parse(xml_str)</p><h1>输出为 YAML 字符串(默认不带引号,缩进2空格)</h1><p>yaml_str = yaml.dump(data, default_flow_style=False, indent=2, allow_unicode=True) print(yaml_str)
登录后复制
处理常见 XML 特性:属性、文本混合、重复标签
xmltodict 默认把属性转为以 @ 开头的键(如 @id),把元素内纯文本转为 #text 键。这对多数场景足够清晰,但需注意以下情况:
立即学习“Python免费学习笔记(深入)”;
标签: python js json 编码 中文乱码 格式化输出 标准库 yy red
还木有评论哦,快来抢沙发吧~