【发布时间】:2019-09-25 13:19:37
【问题描述】:
我需要使用包 pyyaml 在 python 中读取 AWS cloudformation 文件。该问题似乎已使用此代码 sn-p 解决。
def generic_constructor(loader, tag, node):
classname = node.__class__.__name__
if (classname == 'SequenceNode'):
return loader.construct_sequence(node)
elif (classname == 'MappingNode'):
return loader.construct_mapping(node)
else:
return loader.construct_scalar(node)
yaml.add_multi_constructor('', generic_constructor)
如何使用此代码读取 yaml 文件?
https://github.com/yaml/pyyaml/issues/169
问题已在 github 上关闭,这意味着此代码必须正常工作才能读取问题报告者链接的 yaml 文件。
答案是正确的。简而言之,有效的代码是这样的……
import yaml
def generic_constructor(loader, tag, node):
classname = node.__class__.__name__
if classname == "SequenceNode":
return loader.construct_sequence(node)
elif classname == "MappingNode":
return loader.construct_mapping(node)
else:
return loader.construct_scalar(node)
yaml.add_multi_constructor("", generic_constructor, Loader=yaml.SafeLoader)
with open("mytest.yaml") as f:
data = yaml.safe_load(f)
【问题讨论】:
-
你的代码在哪里?您的示例 AWS sn-p 在哪里无法使用该代码?