用 xmltodict + pyyaml 是最简洁可靠的 XML 转 YAML 方案:xmltodict 将 XML 解析为嵌套字典(属性转 @ 开头键,重复标签转列表),PyYAML 再格式化输出为可读 YAML;支持文件读写、UTF-8 编码和异常处理。
用 Python 将 XML 转为 YAML,核心思路是:先解析 XML 成 Python 原生数据结构(如字典、列表),再用 YAML 库将其序列化输出。关键在于 XML 结构到嵌套字典的合理映射,而非简单字符串替换。
+ pyyaml 是最简洁可靠的方式xmltodict 能把 XML 树直接转成接近 JSON 的嵌套字典(保留属性、文本、子元素关系),PyYAML 则负责把字典格式化输出为可读 YAML。两者配合,几行代码就能完成转换。
pip install xmltodict pyyaml
import xmltodict import yamlxml_str = '''
''' Alice 30reading swimming 解析 XML → OrderedDict → 转普通 dict(可选)
data = xmltodict.parse(xml_str)
输出为 YAML 字符串(默认不带引号,缩进2空格)
yaml_str = yaml.dump(data, default_flow_style=False, indent=2, allow_unicode=True) print(yaml_str)
xmltodict 默认把属性转为以 @ 开头的键(如 @id),把元素内纯文本转为 #text 键。这对多数场景足够清晰,但需注意以下情况:
{'#text': 'xxx'}
),会被自动转为列表 —— 这正是 YAML 中数组的自然表示@ 前缀或自定义键名,可在 parse() 时传入 attr_prefix='' 或 attr_prefix='_' 等参数实际使用中多为文件间转换,注意编码和异常处理:
encoding='utf-8' 显式指定编码encoding='utf-8',并设 allow_unicode=True 避免中文乱码
import xmltodict import yamltry: with open('input.xml', encoding='utf-8') as f: xml_data = f.read() data = xmltodict.parse(xml_data)
with open('output.yaml', 'w', encoding='utf-8') as f: yaml.dump(data, f, default_flow_style=False, indent=2, allow_unicode=True)except Exception as e: print(f"转换失败:{e}")
替代方案:用标准库 xml.etree.ElementTree + 手动构建字典
如果不想引入第三方库(如受限环境),可用 Python 内置
xml.etree.ElementTree,但需自己递归遍历节点、处理属性/文本/子元素,并决定如何表示空元素或混合内容。工作量大、易出错,仅建议用于极简 XML 或学习目的。
基本上就这些。用 xmltodict + pyyaml 是目前最实用、稳定、可读性高的组合,能应对绝大多数真实 XML 场景,且代码干净易维护。
# python
# js
# json
# 编码
# 中文乱码
# 格式化输出
# 标准库
# yy
# red
相关文章:
如何注册花生壳免费域名并搭建个人网站?
自助网站制作软件,个人如何自助建网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
linux top下的 minerd 木马清除方法
安徽网站建设与外贸建站服务专业定制方案
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何在云服务器上快速搭建个人网站?
建站之星如何通过成品分离优化网站效率?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何在香港免费服务器上快速搭建网站?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
大型企业网站制作流程,做网站需要注册公司吗?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
黑客如何利用漏洞与弱口令入侵网站服务器?
青岛网站建设如何选择本地服务器?
小型网站制作HTML,*游戏网站怎么搭建?
Swift中switch语句区间和元组模式匹配
网站制作服务平台,有什么网站可以发布本地服务信息?
在线制作视频网站免费,都有哪些好的动漫网站?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过宝塔面板实现本地网站访问?
网页设计与网站制作内容,怎样注册网站?
如何通过FTP服务器快速搭建网站?
北京网站制作公司哪家好一点,北京租房网站有哪些?
css网站制作参考文献有哪些,易聊怎么注册?
简历在线制作网站免费版,如何创建个人简历?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
深入理解Android中的xmlns:tools属性
如何获取PHP WAP自助建站系统源码?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站之星后台密码遗忘如何找回?
开源网站制作软件,开源网站什么意思?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
小型网站建站如何选择虚拟主机?
SQL查询语句优化的实用方法总结
小程序网站制作需要准备什么资料,如何制作小程序?
如何通过PHP快速构建高效问答网站功能?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
已有域名能否直接搭建网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何挑选优质建站一级代理提升网站排名?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
香港网站服务器数量如何影响SEO优化效果?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
盐城做公司网站,江苏电子版退休证办理流程?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
制作网站公司那家好,网络公司是做什么的?
*请认真填写需求信息,我们会在24小时内与您取得联系。