Jas*_*n S 8 python yaml pyyaml
我正在使用yaml.safe_load()但我需要忽略标签!v2- 有没有办法做到这一点但仍然使用safe_load()?
我想通了,它与How can I add a python tuple to a YAML file using pyYAML有关?
我只需要这样做:
yaml.SafeLoaderadd_constructor分配!v2给自定义构造方法yaml.load(..., MyLoaderClass)代替yaml.safe_load(...)它有效。
class V2Loader(yaml.SafeLoader):
def let_v2_through(self, node):
return self.construct_mapping(node)
V2Loader.add_constructor(
u'!v2',
V2Loader.let_v2_through)
....
y = yaml.load(info, Loader=V2Loader)
Run Code Online (Sandbox Code Playgroud)
小智 6
扩展现有答案以支持忽略所有未知标签。
import yaml
class SafeLoaderIgnoreUnknown(yaml.SafeLoader):
def ignore_unknown(self, node):
return None
SafeLoaderIgnoreUnknown.add_constructor(None, SafeLoaderIgnoreUnknown.ignore_unknown)
root = yaml.load(content, Loader=SafeLoaderIgnoreUnknown)
Run Code Online (Sandbox Code Playgroud)