PYYAML 中的自定义 bool 解析

Custom bool parsing in PYYAML

我需要以自定义方式解析 PYYAML 中的布尔值并将它们转换为字符串。为此,我尝试写一个 'constructor' 并用 yaml 注册它,但它什么也没做。布尔值被正常解析。是标签的问题还是我必须以不同的方式处理这个问题?

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)

非常感谢您的帮助,谢谢。

经过反复尝试,我自己找到了答案。看来,我使用了错误的标签。正确的 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)