gpt4 book ai didi

python - 将 Python 字典转换为 yaml

转载 作者:太空狗 更新时间:2023-10-30 02:24:33 27 4
gpt4 key购买 nike

我有一本字典,我正在使用 python 中的 yaml 模块将字典转换为 yaml。但是 Yaml 没有正确转换。

output_data = {
'resources': [{
'type': 'compute.v1.instance',
'name': 'vm-created-by-deployment-manager',
'properties': {
'disks': [{
'deviceName': '$disks_deviceName$',
'boot': '$disks_boot$',
'initializeParams': {
'sourceImage': '$disks_initializeParams_sourceImage$'
},
'autoDelete': '$disks_autoDelete$',
'type': '$disks_type$'
}],
'machineType': '$machineType$',
'zone': '$zone$',
'networkInterfaces': [{
'network': '$networkInterfaces_network$'
}]
}
}]
}

我试过了:

import yaml
f = open('meta.yaml', 'w+')
yaml.dump(output_data, f, allow_unicode=True)

我得到的 meta.yaml 文件如下:

resources:
- name: vm-created-by-deployment-manager
properties:
disks:
- autoDelete: $disks_autoDelete$
boot: $disks_boot$
deviceName: $disks_deviceName$
initializeParams: {sourceImage: $disks_initializeParams_sourceImage$}
type: $disks_type$
machineType: $machineType$
networkInterfaces:
- {network: $networkInterfaces_network$}
zone: $zone$
type: compute.v1.instance

在这里,{sourceImage: $disks_initializeParams_sourceImage$}{network: $networkInterfaces_network$} 变得像字典是内在的意思 字典内容未转换为 yaml

我也试过了,

output_data = eval(json.dumps(output_data)) 
ff = open('meta.yaml', 'w+')
yaml.dump(output_data, ff, allow_unicode=True)

但是获取相同的 yaml 文件内容。

如何在 Python 中将完整的字典转换为 yaml?

最佳答案

默认情况下,PyYAML 根据集合是否嵌套来选择集合的样式。如果一个集合有嵌套集合,它将被分配 block 样式。否则它将具有流样式。

如果您希望集合始终以 block 样式序列化,请将 dump() 的参数 default_flow_style 设置为 False。例如,

>> print(yaml.dump(yaml.load(document), default_flow_style=False))
a: 1
b:
c: 3
d: 4

文档:https://pyyaml.org/wiki/PyYAMLDocumentation

关于python - 将 Python 字典转换为 yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52762525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com