将键值移动到 Ansible 中的字典列表

时间:2021-02-01 12:22:25

标签: ansible

我正在尝试将项目“datacenter_clusters”的键本身转换为键/值对。 这也将遍历以下 dict 列表:

"list_of_dict": [
        {
            "datacenter": "DC_A",
            "datacenter_clusters": {
                "CLUSTER_ALPHA": {
                    "datacenter": "DC_A",
                    "cluster_info_1": "xxxxxx",
                    "cluster_info_2": true,
                    "hosts": [
                        {
                            "folder": "/path/to/host-1",
                            "name": "hostname-1"
                        },
                        {
                            "folder": "/path/to/host-2",
                            "name": "hostname-2"
                        }
                },
                "CLUSTER_BETA": {
                    "datacenter": "DC_A",
                    "cluster_info_1": "yyyyyyy",
                    "cluster_info_2": false,
                }
            }
            "vcenter": "vcenter-1"
        },
        {
            "datacenter": "DC_B",
            "datacenter_clusters": {
                "CLUSTER_OMEGA": {
                    "datacenter": "DC_B",
                    "cluster_info_1": "aaaaaaaa",
                    "cluster_info_2": true,
                },
                "CLUSTER_ZETA": {
                    "datacenter": "DC_A",
                    "cluster_info_1": "bbbbbbbbbb",
                    "cluster_info_2": false,
                }
            }
            "vcenter": "vcenter-2"
        }
]

并添加新的键/值对 "cluster_name":"" 从而将字典 "datacenter_clusters" 转换为列表。 预期结果应如下所示:

"list_of_dict": [
        {
            "datacenter": "DC_A",
            "datacenter_clusters": [
                {           
                    "cluster_name": "CLUSTER_ALPHA",
                    "datacenter": "DC_A",
                    "cluster_info_1": "xxxxxx",
                    "cluster_info_2": true,
                    "hosts": [
                        {
                            "folder": "/path/to/host-1",
                            "name": "hostname-1"
                        },
                        {
                            "folder": "/path/to/host-2",
                            "name": "hostname-2"
                        }
                    ]
                },
                {
                    "cluster_name": "CLUSTER_ALPHA",
                    "datacenter": "DC_A",
                    "cluster_info_1": "yyyyyyy",
                    "cluster_info_2": false,
                }
            ]
            "vcenter": "vcenter-1"
        },
        {
            "datacenter": "DC_B",
            "datacenter_clusters": [
                {
                    "cluster_name": "CLUSTER_OMEGA"
                    "datacenter": "DC_B",
                    "cluster_info_1": "aaaaaaaa",
                    "cluster_info_2": true,
                },
                {
                    "cluster_name": "CLUSTER_ZETA"
                    "datacenter": "DC_A",
                    "cluster_info_1": "bbbbbbbbbb",
                    "cluster_info_2": false,
                }
            ]
            "vcenter": "vcenter-2"
        }
]

我尝试将我在此 link 中找到的内容与“with_subelements”结合起来,但我无法遍历字典列表,我只能遍历简单字典或简单列表或列表列表. 任何帮助将不胜感激

0 个答案:

没有答案