Python PyYAML定制yaml加工

Python PyYAML定制yaml加工,python,pyyaml,Python,Pyyaml,我想用一些自定义宏扩展YAML,以便可以在同一文件中“重用”部分定义。样本: DEFAULTS: - a - b - c CUSTOM1: - %DEFAULTS - d CUSTOM2: - %DEFAULTS - e 导致 CUSTOM1==['a','b','c','d'] CUSTOM2==['a','b','c','e'] 不需要完全相同的语法,只要我能从中获得相同的功能。我有什么选择 附言。 我确实意识到,在解析后可以遍历字典并重新调整值,但是我希望在加载时这样做。YAML规范中

我想用一些自定义宏扩展YAML,以便可以在同一文件中“重用”部分定义。样本:

DEFAULTS:
- a
- b
- c
CUSTOM1:
- %DEFAULTS
- d
CUSTOM2:
- %DEFAULTS
- e
导致

CUSTOM1==['a','b','c','d']
CUSTOM2==['a','b','c','e']
不需要完全相同的语法,只要我能从中获得相同的功能。我有什么选择

附言。
我确实意识到,在解析后可以遍历字典并重新调整值,但是我希望在加载时这样做。

YAML规范中没有选项。唯一接近的是,但这是用于合并映射的,不适用于序列


如果无法切换到在上下文中使用映射(使用
我更多地考虑PyYAML API钩子,但是代码没有很好的文档记录,因此我不知道哪些项将被覆盖,以及覆盖的效果是什么。@Droopy4096如果您希望标准YAML映射的行为不同,并且您不想对序列进行后处理,而不是在解析器I中进行后处理这是唯一的选项。但是PyYAML(以及我的派生版本theparser)的工作方式是,它们没有上下文来访问由
%DEFAULTS
引用的顶级键的值。如果您想使用默认映射,我会进行后处理(尽管我对PyYAML内部非常了解)。
CUSTOM1: !expander
- %DEFAULTS
- d