在Python中,当使用ruamel.Yaml将dict转储到Yaml时,如何将字典键值拆分为多行
使用ruamel.YAML将字典转储到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'},
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编码器决定,而不是由正在编码的数据决定。