在Ansible中,如何使用键的变量来更改现有字典/哈希值

狙击狼

如标题所示,我想遍历现有字典并更改一些值,基于此问题的答案,我想出了以下代码,但由于第二次调试调用中的值未更改,因此无法使用,我认为这是因为在另一个问题中,他们正在从头开始创建新的词典,但是我也尝试过在没有外部花括号的情况下尝试该方法,因为我认为这会导致它更改现有值。

- set_fact:
  uber_dict:
    a_dict:
      some_key: "abc"
      another_key: "def"
    b_dict:
      some_key: "123"
      another_key: "456"

- debug: var="uber_dict"

- set_fact: "{ uber_dict['{{ item }}']['some_key'] : 'xyz' }"
  with_items: "{{ uber_dict }}"

- debug: var="uber_dict"
康斯坦丁·苏沃洛夫(Konstantin Suvorov)

您不能更改现有变量,但是可以注册具有相同名称的新变量。

检查此示例:

---
- hosts: localhost
  gather_facts: no
  vars:
    uber_dict:
      a_dict:
        some_key: "abc"
        another_key: "def"
      b_dict:
        some_key: "123"
        another_key: "456"
  tasks:
    - set_fact:
        uber_dict: "{{ uber_dict | combine(new_item, recursive=true) }}"
      vars:
        new_item: "{ '{{ item.key }}': { 'some_key': 'some_value' } }"
      with_dict: "{{ uber_dict }}"
    - debug:
        msg: "{{ uber_dict }}"

结果:

ok: [localhost] => {
    "msg": {
        "a_dict": {
            "another_key": "def",
            "some_key": "some_value"
        },
        "b_dict": {
            "another_key": "456",
            "some_key": "some_value"
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用从 Ansible 中的 3 个不同列表构建的键/值来形成字典字典

使用ansible合并字典变量列表中具有相同键的对象值

Ansible字典/哈希键作为特殊变量

使用python中的元组键更改字典的所有值

如何使用现有字典的名称来创建新字典?

如何从字典中检索值,其键是 ansible 中 group_vars 中设置的变量

如何将新的键和值添加到 R 中的现有哈希表?

如何在字典的现有键中添加新值(而不丢失以前的值)?

字典键中的Ansible变量

如何使用字典列表中的列表和字典理解来添加键和值?

如何编写python循环来更改API请求中字典键的值?

如何在初始化的空字典中存储现有的键和值

如何在Ansible中使用嵌套变量(字典键)?

如何遍历嵌套的Ruby哈希以基于现有键/值数据添加新的键/值对?

如何通过在其他字典中的字典中使用他的键来获取 python 字典值

打字稿 - 使用键变量更改字典的值

如何使用位置来指示键和值,从列表中创建新字典?

如何使用字典中的键:值对来构建熊猫过滤器

Ansible 使用数组的值作为键来循环包含多个值的字典

在Ansible中解析字典键或参数变量

如何通过在powershell中传递由哈希表的键组成的数组来显示哈希表的值?

如何更改字典中的键?

如何更改字典中的键

键/值键中的Ansible变量

有没有更好的方法可以使用另一个字典中的值作为键来查询字典中的值?

如何更改作为哈希值的变量的值(使用哈希值)?

如何使用整数键访问有序PowerShell哈希表中的值?

如何在现有键处将唯一值添加到哈希图

如何通过检查字典中映射的键来获取字典中的值