如何使用变量中的值更新嵌套Python词典中的键?

时间:2020-04-28 14:07:32

标签: python dictionary nested key

这是 JSON 格式的示例嵌套字典。

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

我想用从变量生成的字符串替换“ dict_id ”,该变量会在Numbers中生成ID。例如“ 1001”,“ 1002”,“ 1003”,因此它显示以下输出。

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

我如何获得上述结果?,将不胜感激。谢谢...

1 个答案:

答案 0 :(得分:1)

一个简单的dictionary comprehension应该可以在这里重构字典:

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'}}}