【问题标题】:YAML object keys listYAML 对象键列表
【发布时间】:2018-09-27 10:26:53
【问题描述】:

我有这个 yaml 对象 users: user1: some description user2: another desc user3: ...

我怎样才能得到这个对象的钥匙?结果应该是[user1, user2, user3]

编辑:我在 ansible 中使用 yaml 变量

【问题讨论】:

  • 你使用什么编程语言?
  • @blhsing 我正在使用ansible
  • 那不是 YAML 对象,它是 YAML 文档。它由一个根级映射组成,该映射具有一个键/值对,并且该值又是一个映射(并且您对该映射的键感兴趣)。没有 YAML 变量之类的东西。由于 ansible 是用 Python 编写的,因此该对象可能具有属性而不是键。如果您只是编造术语而不是努力学习使用与领域相关的术语,我们就不太可能理解您的要求,也不太可能提供相关的答案。
  • @Anthon 感谢您提供宝贵的信息。当我从互联网上搜索这个标题时,我忽略了ansible 这个词,但我找不到任何东西。我不得不搜索“ansible 字典键列表”之类的东西。

标签: ansible yaml


【解决方案1】:

数组:

{{ users.keys() }}

任务:

- name: with_dict
  debug:
    msg: "{{ item.key }}: {{ item.value }}"
  with_dict: "{{ users }}"

模板:

{% for key, value in users.iteritems() %}
    {{ key|e }}: {{ value|e }}
{% endfor %}

【讨论】:

    【解决方案2】:

    Ansible 使用 Jinja,所以你可以这样做:

    [ {{ obj.keys() | join(", ") }} ]
    

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2018-05-25
      • 2021-04-18
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2018-11-23
      相关资源
      最近更新 更多