在Python中,当使用ruamel.Yaml将dict转储到Yaml时,如何将字典键值拆分为多行

在Python中,当使用ruamel.Yaml将dict转储到Yaml时,如何将字典键值拆分为多行,python,dictionary,yaml,ruamel.yaml,Python,Dictionary,Yaml,Ruamel.yaml,使用ruamel.YAML将字典转储到YAML文件时出现问题 假设这是我要转储的字典,其中键的值是字典列表 data1 = "blabla-1" data2 = "blabla-2" theDict = {"write_files": [{'content': '| ' + data1, 'path': '/tmp/f1.txt'},

使用ruamel.YAML将字典转储到YAML文件时出现问题

假设这是我要转储的字典,其中键的值是字典列表

data1 = "blabla-1"
data2 = "blabla-2"

theDict = {"write_files": [{'content': '| ' + data1,
                            'path': '/tmp/f1.txt'},
                           {'content': '| ' + data2,
                            'path': '/tmp/f2.txt'}
                           ]
                           }
这就是我想要得到的结果:

write\u文件:
-内容:|
布拉布拉-1
路径:/tmp/f1.txt
-内容:|
布拉布拉-2
路径:/tmp/f2.txt
其中dict中“内容”键的值分为两行

不幸的是,我得到了这个结果,其中“content”键值与键在同一行中,单引号字符也在那里

write\u文件:
-内容:“| blabla-1”
路径:/tmp/f1.txt
-内容:“| blabla-2”
路径:/tmp/f2.txt
为了得到想要的结果,我应该在Python代码中更改什么

以下是我的Python 3代码:

import os
from ruamel.yaml import YAML

data1 = "blabla-1"
data2 = "blabla-2"

theDict = {"write_files": [{'content': '| ' + data1,
                            'path': '/tmp/f1.txt'},
                           {'content': '| ' + data2,
                            'path': '/tmp/f2.txt'}
                           ]
                           }

outputFile = "/tmp/test/yaml_test_out.yaml"

if os.path.isfile(outputFile):
    os.remove(outputFile)

outF = open(outputFile, 'w')

yaml = YAML()
yaml.preserve_quotes = True
yaml.indent = 4
yaml.dump(theDict, outF)

为什么您想要/需要多行输出?更重要的是,您是否意识到您想要的结果与您得到的结果并不相同?也就是说,
信息不能转储到您想要的格式。。尝试加载您想要获取的YAML文件,并将其与DICT进行比较,这是否回答了您的问题<代码>|
不是该值的一部分;它是YAML语法,不应出现在原始的
dict
中。是否使用块标量(
|
语法)应由YAML编码器决定,而不是由正在编码的数据决定。