Перенос нужных значений в отдельный JSON

Подскажите, как из одного JSON файла выбрать определенные значения (ключ:значение) и записать их в другой JSON? Пример имеющегося JSON файла:

{
"type": "bundle",
"spec_version": "2.0",
"id": "bundle--5dd695fb-cf04-41b1-b800-1542ac103a14",
"objects": [
    {
        "type": "identity",
        "id": "identity--5ba50d3b-25c8-490c-a9c0-2238ac103a14",
        "identity_class": "organization",
        "modified": "2019-11-21T13:49:48.012Z",
        "name": "info_about_host",
        "created": "2019-11-21T13:49:48.012Z"
    },
    {
        "type": "report",
        "object_refs": [
            "indicator--5dd695f6-84a4-4e1a-9486-1541ac103a14"
        ],
        "created_by_ref": "identity--5ba50d3b-25c8-490c-a9c0-2238ac103a14",
        "id": "report--5dd695f6-5f84-4fe7-84a5-1541ac103a14",
        "labels": [
            "Report",
            "networkgenius:tool=\"networkgenius\""
        ],
        "published": "2019-11-21T13:49:43Z",
        "modified": "2019-11-21T13:49:48.037Z",
        "name": "info_about_IP",
        "created": "2019-11-21T00:00:00.000Z"
    },
    {
        "type": "indicator",
        "description": "Attribute found on page 1 of info_about_host",
        "valid_from": "2019-11-21T00:00:00Z",
        "created_by_ref": "identity--5ba50d3b-25c8-490c-a9c0-2238ac103a14",
        "id": "indicator--5dd695f6-84a4-4e1a-9486-1541ac103a14",
        "labels": [
            "networkgenius:type=\"ip\"",
            "networkgenius:category=\"Network settings\"",
            "networkgenius:to_export=\"True\""
        ],
        "pattern": "[network-traffic:dst_ref.type = 'ipv4-addr' AND network-traffic:dst_ref.value = '127.127.127.127']",
        "modified": "2019-11-21T13:49:48.013Z",
        "created": "2019-11-21T13:49:48.013Z"
    }
]

}

Нужные значение:

    "labels": [
        "networkgenius:type=\"ip\"",
        "networkgenius:category=\"Network settings\"",
        "networkgenius:to_export=\"True\""
    ],
    "pattern": "[network-traffic:dst_ref.type = 'ipv4-addr' AND network-traffic:dst_ref.value = '127.127.127.127']"

Спасибо!


Ответы (1 шт):

Автор решения: Alpensin

В файле test.json исходные данные из примера.

import json

with open("test.json", "r") as f:
    data = json.load(f)

objects_list= data.get('objects')

new_json = dict()
for c_obj_dict in objects_list:
    if c_obj_dict['type'] == "indicator":
        new_json['labels'] = c_obj_dict.get('labels')
        new_json['pattern'] = c_obj_dict.get('pattern')

with open("result.json", "w") as f:
    json.dump(new_json, f)
→ Ссылка