引用Yaml中的文本文件

问题描述

我有一个yaml文件,其值> 2000行之一。向配置中添加2k行不利于使配置文件清晰可见。读取Yaml时是否可以将2k行移动到文本文件中并引用文件内容作为值

当前设置

curated:
    xform1: 
        case when A=B then C else D end
    xform2:
        case ....
        ...............
        ..............
        ................
        2000k lines
        end 

所需

curated:
    xform1: 
        case when A=B then C else D end
    xform2:xform2.txt

解决方法

不具有纯YAML语义。

如果您正在编写加载代码,则当然可以定义一个本地标签:

curated:
  xform1:
    case when A=B then C else D end
  xform2: !file xform2.txt

在加载时,您可以在加载引用的文件时实施本地标签!file。如何执行此操作取决于您使用的YAML实施;它可能会称为注册自定义构造函数

如果您没有对加载代码有任何控制权,那么除非该代码提供了执行此操作的方法,否则是不可能的。一些使用YAML的工具会使用允许它的模板引擎对其进行预处理。

根据设置,您可以使用模板引擎对YAML进行预处理,然后将结果输入到加载YAML的工具中。