擅长:python、mysql、java
<p>我已经给PyYAML的创建者kirillsimonov发了电子邮件,请求帮助解析Puppet YAML文件。在</p>
<p>他很乐意为下面的代码提供帮助。这段代码是用来解析Puppet日志的,但是我确信您可以修改它来解析其他Puppet YAML文件。在</p>
<p>我们的想法是为Ruby对象创建正确的加载程序,然后PyYAML可以读取数据。在</p>
<p>接下来是:</p>
<pre><code>#!/usr/bin/env python
import yaml
def construct_ruby_object(loader, suffix, node):
return loader.construct_yaml_map(node)
def construct_ruby_sym(loader, node):
return loader.construct_yaml_str(node)
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
stream = file('201203130939.yaml','r')
mydata = yaml.load(stream)
print mydata
</code></pre>