Как я могу обновить ключ во вложенном Python словаре со значением из переменной? - PullRequest
1 голос
/ 28 апреля 2020

это пример вложенного словаря в формате JSON.

{
    "dict1": {
        "key": "value",
    },
    "dict2": {
        "dict_id": {
            "key1": "value1",
            "key2": "value2"
        }
    }
}

Я хотел бы заменить " dict_id " строкой, полученной из переменная, которая генерирует идентификаторы в числах. Например, «1001», «1002», «1003», поэтому я получаю следующий вывод.

{
        "dict1": {
            "key": "value",
        },
        "dict2": {
            "1001": {
                "key1": "value1",
                "key2": "value2",
            },
             "1002": {
                "key1": "value1",
                "key2": "value2",
            },
              "1003": {
                "key1": "value1",
                "key2": "value2",
            }
        }
    }

Как я могу получить вышеуказанные результаты? Любая помощь будет оценена. спасибо ...

1 Ответ

1 голос
/ 28 апреля 2020

Простое понимание словаря должно работать здесь для реструктуризации словаря:

d = {
    "dict1": {
        "key": "value",
    },
    "dict2": {
        "dict_id": {
            "key1": "value1",
            "key2": "value2"
         }
    }
}

ids = ["1001", "1002", "1003"]

result = {"dict1": d["dict1"], "dict2": {i: d["dict2"]["dict_id"] for i in ids}}

print(result)

Вывод:

{'dict1': {'key': 'value'}, 'dict2': {'1001': {'key1': 'value1', 'key2': 'value2'}, '1002': {'key1': 'value1', 'key2': 'value2'}, '1003': {'key1': 'value1', 'key2': 'value2'}}}
...