我有一个 YAML 文件,例如:
%YAML 1.1
%TAG !x! tag:x.y,2013:
--- !x!1 &1
SomeThing:
member: 1
--- !x!2 &2
OtherThing:
inner: foo
我不确定它是否合规,但它是由我无法控制的程序生成的。
真的,我不在乎将 'tag:xy,2013:1' 转换为任何特定的类,所以我尝试BasicLoader
像这样使用 PyYAML:
import yaml
import pprint
with open("file.yaml", "r") as f:
items = yaml.load_all(f, Loader=yaml.loader.BasicLoader)
for item in items:
pprint.pprint(item)
PyYAML 在到达第二个文档时抛出异常。
yaml.parser.ParserError: while parsing a node
found undefined tag handle '!x!'
是否有一种简单的方法可以告诉 PyYAML 完全忽略标签前缀,或者将相同的%TAG
指令应用于流中的所有文档?