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)
我需要以自定义方式解析 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)