擅长:python、mysql、java
<p>我不知道你是否需要山药。除了使用YAML标记之外,您似乎对YAML文档没有兴趣。那么为什么不使用Jinja2或一些模板语言呢?</p>
<pre><code>from jinja2 import Template
tmpl = Template(u'''\
init_config: {}
instances:
- host: {{ IP }}
username: {{ username }}
password: {{ password }}
''')
print tmpl.render(
IP=u"1.2.3.4",
username=u"Username",
password=u"Password"
)
</code></pre>
<p>我不知道这是否是一个好主意,但是如果您只需要获得一个更改了一些字段的文件,您不需要真正解析YAML文档,并且可以直接从模板语言中获益。</p>
<hr/>
<p><strong>奖励:</strong>用例</p>
<p>我处理过非常复杂的YAML文档,其中有未知的标记</p>
<pre><code>...
propertiesIDs: { 1, 2, 3, 4 }
globalID: !myapplication.InterfaceID &primitiveID
replication: !myapplication.replication
beginDate: 2012-09-10T20:00:03
endDate: 2020-09-10T20:00:04
replicant_uuid:
? 17169504-B6AB-11E4-8437-36E258BB2172
? 206B5842-B6AB-11E4-AAC3-36E258BB2172
...
</code></pre>
<p>执行此文档的有效分析既困难又耗时。我只需要填充一些值,然后将YAML发送到第三方应用程序。因此,直接通过模板生成有效文档比解析YAML或直接使用pyyaml生成有效文档更简单(更省时,不易出错)。此外,模板语言可以很容易地与循环一起使用,以填充动态大小的字段。</p>