根据现有键为列表中的每个字典设置新键

时间:2018-10-31 17:51:27

标签: ansible ansible-2.x

说我有

def default_url(*args)
  "/images/default.jpg"
end

def extension_whitelist
  %w(jpg jpeg gif png)
end

我想要:

[ {a: 'a'}, {a: 'b'}]

我将如何在Ansible中执行此操作?希望它会像

[ {a: 'a', b: 'ab'}, {a: 'b', b: 'bb'}]

但是在这种情况下,我不知道如何访问- set_fact: result: "{{ input | map('combine', dict(b=item.a + 'b')) | list }}"

1 个答案:

答案 0 :(得分:0)

如果Jinja中的“一个班轮”不起作用,或者太紧以致其他人都无法阅读,那可能不是一个好主意

- set_fact:
    # we are cloning the input dicts for mutation
    result: >-
      {%- set output = [] -%}
      {%- for d in input: -%}
      {%-   set d2 = dict(d) -%}
      {%-   set _ = d2.update({"b": d2["a"] + "b"}) -%}
      {%-   set _ = output.append(d2) -%}
      {%- endfor -%}
      {{- output -}}