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

如何用Python生成指定格式的YAML文件?

解决Python生成指定格式YAML的问题

正确代码实现

要生成你需要的YAML格式,首先要构建对应的数据结构——steps是一个键,对应的值是列表,列表中每个元素是包含A和B的字典,其中B的值又是嵌套字典。

import yaml

# 构建符合目标格式的数据结构
data = {
    'steps': [
        {'A': 'a', 'B': {'C': 'c', 'D': 'd', 'E': 'e'}},
        {'A': 'a1', 'B': {'C': 'c1', 'D': 'd1', 'E': 'e1'}},
        {'A': 'a2', 'B': {'C': 'c2', 'D': 'd2', 'E': 'e2'}}
    ]
}

with open('result.yml', 'w') as yaml_file:
    # sort_keys=False 确保字典键的顺序和定义一致,避免A、B被排序调换
    yaml.dump(data, yaml_file, default_flow_style=False, sort_keys=False)

生成的目标YAML格式

运行上述代码后,result.yml的内容将完全符合你的需求:

steps:
- A: a
  B:
    C: c
    D: d
    E: e
- A: a1
  B:
    C: c1
    D: d1
    E: e1
- A: a2
  B:
    C: c2
    D: d2
    E: e2

你之前代码的问题分析

  1. 结构逻辑错误:你把YAML中的列表标记-和A合并成了字典的键,这完全违背了YAML的语法规则。-是列表元素的标识,所以steps对应的应该是列表,而非单个字典。
  2. 缩进错误根源:因为结构错误,B被当成了和'- A'同级的字典键,自然无法实现和A对齐的缩进。只有把A和B放在同一个列表元素的字典中,才能让B缩进一级和A对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:50:25