我需要以自定义方式解析PYYAML中的布尔值并将它们转换为字符串。为此我试着写一个'构造函数'并用yaml注册它,但它没有做任何事情。 Booleans正常解析。这是标签的问题还是我必须以不同的方式处理这个问题?
def bool_constructor(loader, node):
value = loader.construct_yaml_bool(node)
if value == False:
return '$false'
else:
return '$true'
enter code here`yaml.add_constructor('!!bool', bool_constructor)
感谢您的帮助,谢谢。
答案 0 :(得分:3)
经过一番尝试和错误后,我自己找到了答案。看来,我使用了错误的标签。正确的python代码如下所示:
def bool_constructor(self, node):
value = self.construct_yaml_bool(node)
if value == False:
return '$false'
else:
return '$true'
yaml.Loader.add_constructor(u'tag:yaml.org,2002:bool', bool_constructor)
yaml.SafeLoader.add_constructor(u'tag:yaml.org,2002:bool', bool_constructor)