如何在文件中写入 YAML 格式的数据?

Posted

技术标签:

【中文标题】如何在文件中写入 YAML 格式的数据?【英文标题】:How can I write data in YAML format in a file? 【发布时间】:2012-09-10 08:13:19 【问题描述】:

我需要使用 Python 将以下数据写入 yaml 文件:

A:a, B:C:c, D:d, E:e 

即字典中的字典。我怎样才能做到这一点?

【问题讨论】:

另见:How can I parse a YAML file in Python 【参考方案1】:
import yaml

data = dict(
    A = 'a',
    B = dict(
        C = 'c',
        D = 'd',
        E = 'e',
    )
)

with open('data.yml', 'w') as outfile:
    yaml.dump(data, outfile, default_flow_style=False)

default_flow_style=False 参数是生成您想要的格式(流样式)所必需的,否则对于嵌套集合,它会生成块样式:

A: a
B: C: c, D: d, E: e

【讨论】:

default_flow_style=True 与下面的答案相反! 在此处使用with 与单行相比有什么好处吗? @src with 确保文件在不再需要时正确关闭 见Munch, ***.com/questions/52570869/… import yaml; from munch import munchify; f = munchify(yaml.safe_load(…));print(f.B.C)【参考方案2】:

Link 到 PyYAML 文档中,显示了 default_flow_style 参数的差异。 以块模式将其写入文件(通常更具可读性):

d = 'A':'a', 'B':'C':'c', 'D':'d', 'E':'e'
with open('result.yml', 'w') as yaml_file:
    yaml.dump(d, yaml_file, default_flow_style=False)

产生:

A: a
B:
  C: c
  D: d
  E: e

【讨论】:

见Munch, ***.com/questions/52570869/… import yaml; from munch import munchify; f = munchify(yaml.safe_load(…));print(f.B.C)

以上是关于如何在文件中写入 YAML 格式的数据?的主要内容,如果未能解决你的问题,请参考以下文章

C++ YAML:如何编辑/写入 .yaml 文件中的节点

Python如何调用yaml文件中的参数来执行ssh命令

python——Yaml

我想加载一个 YAML 文件,可能编辑数据,然后再次转储。如何保留格式?

Node.js写入YAML文件

python中使用rumel.yaml写入文件时,中文不乱码的方式以及转换后格式正确