ansible 字典键值对

时间:2021-06-26 21:11:38

标签: json ansible

我是 Ansible/json 的新手,我正在尝试解析以下 json:

{
    "resultCPU": {
        "changed": false,
        "msg": "All items completed",
        "results": [
            {
                "ansible_facts": {
                    "CPU": "6",
                    "VM": "tigger"
                },
            {
                "ansible_facts": {
                    "CPU": "4",
                    "VM": "pooh"
            },

我需要设置这个 json 中项目的值,以便 pooh=4 和 tigger=6。稍后我将需要参考这两个值(有关如何执行此操作的建议也会有所帮助)。

我尝试使用 cpuvm "{{ resultCPU.results |selectattr('VM') |map(attribute='CPU')|list }}",但它抱怨“'dict object' has no attribute VM”。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的 selectattr 忽略了 ansible_facts 和您尝试 results: [] 之间的 VM。谢天谢地,map kwarg 理解点符号

attribute

together filter 也可能会让您感兴趣

至于“我稍后需要参考这两个值(有关如何执行此操作的建议也会有所帮助)”。这通常是 set_fact: 的用途,但如果没有关于您尝试过的内容和期望的形状的更多细节,则很难给出更具体的答案