【发布时间】:2018-10-04 19:04:29
【问题描述】:
我有以下 YAML:
instance:
name: test
flavor: x-large
image: centos7
tasks:
centos-7-prepare:
priority: 1
details::
ha: 0
args:
template: &startup
name: startup-centos-7
version: 1.2
timeout: 1800
centos-7-crawl:
priority: 5
details::
ha: 1
args:
template: *startup
timeout: 0
第一个任务定义模板名称和版本,然后由其他任务使用。模板定义不应更改,但其他尤其是任务名称会更改。
在 Python 中更改模板名称和版本的最佳方法是什么?
我有以下用于匹配的正则表达式(使用 re.DOTALL):
template:.*name: (.*?)version: (.*?)\s
但是到目前为止还没有弄清楚 re.sub 的使用情况。或者有没有更方便的方法来做到这一点?
【问题讨论】:
-
这里不要使用正则表达式,使用用于解析 YAML 的库。
-
yaml 文件应该会在未来发生变化,所以解析的意义不大...
标签: python python-3.x yaml