【发布时间】:2021-10-01 18:26:12
【问题描述】:
我想更新 yaml 文件中的特定属性,而其余部分保持不变,包括格式化、cmets 等。我正在使用 raumel.yaml。但是当我保存文件时,它的格式会变得混乱。我正在使用 python 3.9.5 和 raumel.yaml 版本:0.17.10。
test.yaml:
sso:
version: 1.0.0
configs:
- configName: config1.conf
fileContent: 'startDelaySeconds: 0
lowercaseOutputName: true
lowercaseOutputLabelNames: false
whitelistObjectNames: [''org.apache.commons.pool2:*'']
blacklistObjectNames: []
rules:
- pattern: ".*"
'
我更新版本:
from ruamel.yaml import YAML
yaml = YAML()
with open('test.yaml') as f:
test = yaml.load(f)
test['sso']['version'] = '1.0.1'
with open('test2.yaml', 'w') as f:
yaml.dump(test, f)
但是保存文件的fileContent 的格式发生了变化(换行符替换为\n 等)。 test2.yaml:
sso:
version: 1.0.1
configs:
- configName: config1.conf
fileContent: "startDelaySeconds: 0\nlowercaseOutputName: true\nlowercaseOutputLabelNames:\
\ false\nwhitelistObjectNames: ['org.apache.commons.pool2:*']\nblacklistObjectNames:\
\ []\nrules:\n- pattern: \".*\"\n"
【问题讨论】:
-
我更新了您的程序,因为您在此处粘贴的内容永远无法提供该输出。
-
@Anthon 谢谢,我复制了错误的命令
标签: python yaml ruamel.yaml