2016-01-20 51 views
0

我有陽明繼承陽明和添加或更新現有的塊

# 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 

它在nested-prop塊添加val4和在底部添加prop2: val5

我們可以在沒有任何編程模塊(如pyyaml或其他)的情況下執行此操作。只使用yaml語法?

+0

你的問題是什麼? –

+0

有沒有什麼辦法可以實現這一點,只使用yaml語法? – Nilesh

回答

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鍵不保證「在底部」(因爲映射是無序的,沒有「底部」)。

+0

謝謝@Jordan,我會嘗試用'&'變量來更改我的源文件。 – Nilesh