作为一个简化的例子,假设我有以下字典,它告诉我一家公司不同地点的员工人数:
start_dict = {
"/BUILDING_A/FLOOR_3/ROOM_12": 3,
"/BUILDING_A/FLOOR_3/ROOM_15": 4,
"/BUILDING_A/FLOOR_4/ROOM_3": 2,
"/BUILDING_B/FLOOR_1": 5,
"/BUILDING_B/FLOOR_2": 3,
"/BUILDING_C": 25,
"/BUILDING_D": 32,
}
每个字典键都是具有一个或多个以斜杠分隔的元素的字符串.在我的真实数据中,每个键可以包含任意数量的元素.
我希望将这个入门词典转换为嵌套词典.所需结果如下所示:
{
"BUILDING_A": {
"FLOOR_3": {
"ROOM_12": 3,
"ROOM_15": 4,
},
"FLOOR_4": {
"ROOM_3": 2
},
},
"BUILDING_B": {
"FLOOR_1": 5,
"FLOOR_2": 3,
},
"BUILDING_C": 25,
"BUIDLING_D": 32,
}
到目前为止已try 过
我试着改编这个answer,但不能很好地使它工作.这是我想出的代码:
result_dict = {}
for key, value in start_dict.items():
new_keys = key.lstrip("/").split("/")
current_dict = result_dict
for new_key in new_keys[:-1]:
current_dict = current_dict.get(new_key, {})
current_dict[new_keys[-1]] = value
这给出了以下result_dict
分:
{'BUILDING_C': 25, 'BUILDING_D': 32}