在没有换行的情况下用 python 编写 Yaml 文件

问题描述 投票:0回答:1

假设我有以下片段:

import yaml
Key = ["STAGE0", "STAGE1"]
dict = {}
dict[Key[0]] = [' ']
dict[Key[1]] = [' ']
dict[Key[0]][0]="HEY" 
dict[Key[0]][0]="WHY newline?"
with open("SUMMARY.YAML", "w") as file_yaml:
    yaml.dump(dict, file_yaml)

输出

SUMMARY.YAML
文件如下所示:

STAGE0:
- WHY newline?
STAGE1:
- ' '

但是我需要按照以下所需格式保存它们:

STAGE0: WHY newline?
STAGE1: ' '

我无法得到这个输出

python file io yaml pyyaml
1个回答
0
投票

你正在创建一个比你需要的复杂得多的结构,充满了列表和引用,如果可以的话,直接创建字典

data = {
    "STAGE0": "value0",    # single value
    "STAGE1": ["value1"],  # value in list
}
>>> print(yaml.dump(data))
STAGE0: value0
STAGE1:
- value1

或者如果您要修改可能的步骤,只需直接添加键和值

data = {}

if True:
    data["STAGE0"] = "value0"
if True:
    data["STAGE1"] = "value1"

最后,如果你确实创建了列表,

.append()
可能是一个更好的选择来添加值而不是尝试创建所有的索引

try:
    data[key].append(value)
except KeyError:
    data[key] = [value]
© www.soinside.com 2019 - 2024. All rights reserved.