Yaml:我们可以对整个Yaml文件/文档应用前缀吗?

Yaml:我们可以对整个Yaml文件/文档应用前缀吗?,yaml,Yaml,我有这样一份文件: --- prefix1: prefix2: a: b: a: 'x' c: b: 'y' d: c: 'z' b: b: a: 'x' c: b: 'y' d: c: 'z' c: b: a: 'x' c: b: 'y'

我有这样一份文件:

---
prefix1:
  prefix2:
    a:
      b:
        a: 'x'
      c:
        b: 'y'
      d:
        c: 'z'
    b:
      b:
        a: 'x'
      c:
        b: 'y'
      d:
        c: 'z'
    c:
      b:
        a: 'x'
      c:
        b: 'y'
      d:
        c: 'z'
整个文档将嵌套在
prefix1.prefix2
下,由于各种原因,我无法轻松更改(使用Yaml的不同工具和作为源代码的同一文档)

有没有办法重写这个文档,这样我就不会有太多的缩进需要处理

像这样的

DocumentPrefix=prefix1.prefix2
---
a:
  b:
    a: 'x'
  c:
    b: 'y'
  d:
    c: 'z'
b:
  b:
    a: 'x'
  c:
    b: 'y'
  d:
    c: 'z'
c:
  b:
    a: 'x'
  c:
    b: 'y'
  d:
    c: 'z'

YAML无法进行数据转换,因此您想要做的是不可能的。如果缩进错误,可以使用流样式集合:

---
{ prefix1: { prefix2: {
a: {
  b: {a: 'x'},
  c: {b: 'y'},
  d: {c: 'z'}
},
b: {
  b: {a: 'x'},
  c: {b: 'y'},
  d: {c: 'z'},
},
c: {
 b: {a: 'x'},
 c: {b: 'y'},
 d: {c: 'z'}
}
}}}

YAML无法进行数据转换,因此您想要做的是不可能的。如果缩进错误,可以使用流样式集合:

---
{ prefix1: { prefix2: {
a: {
  b: {a: 'x'},
  c: {b: 'y'},
  d: {c: 'z'}
},
b: {
  b: {a: 'x'},
  c: {b: 'y'},
  d: {c: 'z'},
},
c: {
 b: {a: 'x'},
 c: {b: 'y'},
 d: {c: 'z'}
}
}}}

AFAIK yaml只是一种数据序列化格式。我认为如果不“打破”任何东西,就没有办法改变它。您可以编写一个脚本或其他东西,从您的“简化”版本生成原始版本。不幸的是,在我的情况下,管理两个不同的文件并不方便(顺便说一句,我宁愿使用JSON作为源代码),因此,我想您只有两个选择:保留yaml格式的第一个版本。或者使用该文件修改程序(我想最后一个不是选项…)AFAIK yaml只是一种数据序列化格式。我认为如果不“打破”任何东西,就没有办法改变它。您可以编写一个脚本或其他东西,从您的“简化”版本生成原始版本。不幸的是,在我的情况下,管理两个不同的文件并不方便(顺便说一句,我宁愿使用JSON作为源代码),因此,我想您只有两个选择:保留yaml格式的第一个版本。或者使用该文件修改程序(我想最后一个不是选项…),我们可以同时混合这两种样式吗?不太确定您可以在块样式中的任何位置使用流样式,但一旦输入流样式,您需要将其保留在所有嵌套节点中。我们是否可以同时混合这两种样式?不是很确定可以在块样式中的任何位置使用流样式,但一旦输入流样式,就需要将其保留在所有嵌套节点中。