我有yml
# test.yml
- name: test
prop1: val1
nested-prop:
- val2
- val3
现在我想添加另一个块并更新现有的nested-prop
块,因此结局输出可能如下所示。
# test.yml
- name: test
prop1: val1
nested-prop:
- val2
- val3
- val4
prop2: val5
在val4
块中添加nested-prop
并在底部添加prop2: val5
。
我们可以在没有pyyaml
或其他任何编程模块的情况下实现这一目标。仅使用yaml语法?
答案 0 :(得分:2)
不,只有YAML无法做到这一点。无法将项目合并到您想要使用val4
的序列中。
使用别名(&foo
)和锚点(*foo
), 可以将一个映射合并到另一个映射中:
my-alias: &my-alias
prop2: val5
data:
- name: test
prop1: val1
nested-prop:
- val2
- val3
<<: *my-alias
这将产生一个等同于以下内容的数据结构:
my-alias:
prop2: val5
data:
- name: test
prop1: val1
nested-prop:
- val2
- val3
prop2: val5
请注意,YAML中的映射是无序的,因此prop2
键不能保证“在底部”(因为映射是无序的,没有“底部”)。