You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ruamel.yaml读取单个文件中的多个YAML定义

多YAML文档读取解决方案

完全支持从单个文件/流中读取多个YAML定义,你遇到的报错是因为load()方法默认仅加载单个YAML文档,多文档场景需要调用load_all()方法。

修正后示例代码

import ruamel.yaml

text = '''
---
foo: bar
---
baz: baz
...
'''

yaml = ruamel.yaml.YAML(typ='rt')
# load_all返回包含所有YAML文档的可迭代对象
yaml_docs = yaml.load_all(text)

for doc in yaml_docs:
    print(doc)
# 输出:
# {'foo': 'bar'}
# {'baz': 'baz'}

注意事项

  • load_all()返回的是迭代器,仅能遍历一次,如需重复使用请先转换为列表:doc_list = list(yaml.load_all(text))
  • 该方法对所有typ参数(包括你用的rt往返模式)都兼容,无需修改实例化参数
  • 你当前使用的0.17.16版本完全支持该特性,不需要调整ruamel.yaml版本

内容的提问来源于stack exchange,提问作者Bruno Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:06:01