【发布时间】:2021-12-11 19:48:00
【问题描述】:
我正在尝试通过在 YAML 中使用锚标记来减少复制相同配置数据(存储在 YAML 文件中)的麻烦。 YAML 示例如下所示:
profiles:
home: &home
key1: value1
object1:
subKey1: subVal1
subKey2: subVal2
complexObject:
something: value
someOtherThing: value
work:
<<: *home
object1:
subKey2: completelyDifferentValue # something like this ?!
complexObject.something: notValue # or something like this ?
上述 YAML 的等效 JSON 是
{
"profiles": {
"home": {
"key1": "value1",
"object1": {
"subKey1": "subVal1",
"subKey2": "subVal2",
"complexObject": {
"something": "value",
"someOtherThing": "value"
}
}
},
"work": {
"key1": "value1",
"object1": {
"subKey2": "completelyDifferentValue",
"complexObject.something": "notValue"
}
}
}
}
而我想要的是:
{
"profiles": {
"home": {
"key1": "value1",
"object1": {
"subKey1": "subVal1",
"subKey2": "subVal2",
"complexObject": {
"something": "value",
"someOtherThing": "value"
}
}
},
"work": {
"key1": "value1",
"object1": {
"subKey1": "subVal1",
"subKey2": "completelyDifferentValue",
"complexObject": {
"something": "notValue",
"someOtherThing": "value"
}
}
}
}
}
(被移除的附加 subKey1) YAML 配置文件将在 Objects 中包含 Objects,想法是拥有一个父对象,然后复制它并修改一些键(在子对象对象内)
- 我知道 YAML 规范在这种情况下可能没有直接的帮助,并且希望通过 pyyaml(或其他一些库)在 python 中提供任何解决方法!
【问题讨论】:
标签: python dictionary yaml pyyaml