python - 在 Python 中,使用 ruamel.yaml 将字典转储到 Yaml 时如何将字典键值拆分为多行
问题描述
使用 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_files:
- content: |
blabla-1
path: /tmp/f1.txt
- content: |
blabla-2
path: /tmp/f2.txt
其中 dict 中“content”键的值被分成 2 行。
不幸的是,我得到了这个结果,其中“内容”键值与键所在的行位于同一行,并且单引号字符也在那里。
write_files:
- content: '| blabla-1'
path: /tmp/f1.txt
- content: '| blabla-2'
path: /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)
解决方案
推荐阅读
- react-native - 如何在本机反应中检测从 LandscapeRight 到 LandscapeLeft 方向的变化?
- android - 如何在 Android Webview 中显示 Vimeo 视频?
- java - 如何在 Java 反射中获取字段值
- angular - 根据来自服务器的响应以角度类型转换多个响应
- android - 有没有更简单的方法来检查哪个下载已经完成?
- google-chrome-devtools - 服务工作者获取事件未列出根 index.html
- bash - 以特定格式“newik”的 Sed
- ruby-on-rails - 如何设置 Travis Rspec 以测试在 Rails 应用程序中访问的只读副本
- javascript - 将数组添加到 JSON 对象(如果它不存在)
- keyboard - AutoHotkey 中未使用的组合键列表