Ansible使用密钥匹配将两个嵌套的json文件合并到单个文件中

Ansible使用密钥匹配将两个嵌套的json文件合并到单个文件中,json,ansible,Json,Ansible,我有两个json,希望将一个附加到另一个json中,并将它们保存在一个文件中。我已经做了一系列的工作来读取这些值,并使用以下方法将它们放入变量中: - name: Set json combine to add new event set_fact: event_json_create: "{{ lookup('file', 'event_template.json') }}" - name: Set json combine to get the existing list

我有两个json,希望将一个附加到另一个json中,并将它们保存在一个文件中。我已经做了一系列的工作来读取这些值,并使用以下方法将它们放入变量中:

- name: Set json combine to add new event
  set_fact:
     event_json_create: "{{ lookup('file', 'event_template.json') }}" 

- name: Set json combine to get the existing list of events
  set_fact:
     event_json_existing: "{{ lookup('file', 'notification.json') }}" 
现在,我想将event_json_create附加到event_json_existing

事件_json_create如下所示:

"event_json_create": {
    "LambdaFunctionConfigurations": [{
        "LambdaFunctionArn": "arn:aws:lambda:us-east-1:*******:function:xyz"
    }]
        }
 "event_json_existing": {
            "LambdaFunctionConfigurations": [{
                    "LambdaFunctionArn": "arn:aws:lambda:us-east-1:******:function:abc"
                }],
    "TopicConfigurations": [{
        "TopicArn": "arn:aws:sns:us-east-1:xxxxxx:crt"
    }]
        }
事件_json_existing如下所示:

"event_json_create": {
    "LambdaFunctionConfigurations": [{
        "LambdaFunctionArn": "arn:aws:lambda:us-east-1:*******:function:xyz"
    }]
        }
 "event_json_existing": {
            "LambdaFunctionConfigurations": [{
                    "LambdaFunctionArn": "arn:aws:lambda:us-east-1:******:function:abc"
                }],
    "TopicConfigurations": [{
        "TopicArn": "arn:aws:sns:us-east-1:xxxxxx:crt"
    }]
        }
我如何在ansible中附加这两个json,确保这两个json都在主组:lambdFunctionConfiguration下,并保留TopicConfiguration的剩余内容,然后我可以将其写入json文件。因此,我期望的结果是:

{
    "LambdaFunctionConfigurations": [
        {
           "LambdaFunctionArn": "arn:aws:lambda:us-east-1:*******:function:xyz"
        },
        {
           "LambdaFunctionArn": "arn:aws:lambda:us-east-1:*******:function:abc"
        }
       ],  
    "TopicConfigurations": [
     {
        "TopicArn": "arn:aws:sns:us-east-1:xxxxxx:crt"
    }
    ]
}
请帮忙

(作为问题转换的一个例子)

问:根据下面的字典

获得输出

expected:
  dict1:
    - key1: value1
    - key1: value2
  dict2:
    - key2: value3
将输出写入JSON格式的文件
A:下面的任务是什么

    - set_fact:
        events: "{{ events|default({})|
                    combine({item: existing[item]|default([]) +
                                   create[item]|default([])}) }}"
      loop: "{{ (create.keys()|list + existing.keys()|list)|unique }}"
    - template:
        src: events.json.j2
        dest: events.json
使用模板

shell> cat events.json.j2
{{ events|to_nice_json }}
给予

shell> cat events.json
{
    "dict1": [
        {
            "key1": "value2"
        },
        {
            "key1": "value1"
        }
    ],
    "dict2": [
        {
            "key2": "value3"
        }
    ]
}