Ansts的dicts列表 - 在列表过滤器后访问密钥

时间:2017-05-22 09:32:15

标签: dictionary ansible jinja2

拿这个剧本YAML:

---
- hosts: localhost
  become: false
  vars:
    list_of_dicts:
      - { key1: "cccc", key2: "dddd" }
      - { key1: "aaaa", key2: "bbbb" }
  tasks:
    - name: debug list
      debug:
        msg: "{{ list_of_dicts|sort(attribute='key1')|first }}"

如何通过过滤器链访问dict键?过滤器生成dict,如下所示:

ok: [localhost] => {
    "msg": {
        "key1": "aaaa",
        "key2": "bbbb"
    }
}

我只想访问过滤器链中的key2 - 我想象...|first.key2之类的东西,但推断出first是一个它不是的对象(同样也失败了first['key2'] 1}})

1 个答案:

答案 0 :(得分:2)

这肯定是重复的,但我找不到相应的答案。我希望SO有一个更好的搜索引擎。

您可以在Jinja2中对表达式进行分组,如下所示:

(list_of_dicts|sort(attribute='key1')|first).key2