首页 > 解决方案 > 从python中的点(。)分隔的键创建嵌套字典

问题描述

我有一个要求,我有一个由 dot(.) 组合的字符串格式的键以及与该键字符串关联的值,并且我想创建一个字典。

key1 = "A.B.C.D"
text_to_be_inserted1_for_key1 = "Test1"
key2 = "A.B.C.E"
text_to_be_inserted_for_key2 = "Test2"

预期结果

dict = {
    "A": {
        "B" : {
            "C" : {
                "D" : text_to_be_inserted1_for_key1,
                "E" : text_to_be_inserted_for_key2 
            }
        }
    }
}

标签: pythondictionary

解决方案


from collections import defaultdict

def deep_dict():
    return defaultdict(deep_dict)

result = deep_dict()

def deep_insert(key, value):
    d = result
    keys = key.split(".")
    for subkey in keys[:-1]:
        d = d[subkey]
    d[keys[-1]] = value

deep_insert("A.B.C.D", "Test1")
deep_insert("A.B.C.E", "Test2")

import json
print(json.dumps(result, indent=4))

推荐阅读