【发布时间】:2020-05-23 09:26:19
【问题描述】:
我正在尝试使用 ruamel-yaml 来实现以下目标我有一个带有一组变量的 YAML 文件(请注意,所有键都以缩进 6 开头):
app:
version: 'latest'
env: 'test'
#auth
auth_endpoint: 'http://localhost/login'
auth_token: 23NSDQD94NFDFKF0SQS
我的想法是为用户提供一个 python 脚本,该脚本将生成配置文件但具有覆盖的值,所以基本上我将解析参数,加载 YAML 文件更改值并使用更新的值转储 YAML 文件和这个一切正常,除非文件被转储,缩进 6 丢失,除了 cmets,(见下面的代码)
app:
version: 'latest'
env: 'test'
#auth
auth_endpoint: 'http://localhost/login'
auth_token: 23NSDQD94NFDFKF0SQS
现在这个缩进很重要,因为这个文件将被解析并合并到一个更大的 YAML 文件中
def update_yaml(file):
yaml = ruamel.yaml.YAML()
yaml.indent(mapping=6)
config_yaml = yaml.load(file)
# value changing code ommited for readability
with open(os.path.join(sys.path[0], "config.yml"), 'w') as file:
yaml.dump(config_yml, file)
我已经用缩进方法尝试了一些东西,但没有成功,知道如何保持这个原始缩进吗?
【问题讨论】:
标签: python yaml ruamel.yaml