根据传入带分隔符的Key与value生成对应的嵌套字典
方法一:
k1, v1 = 'a.b.c', 1
def nested_dict(k, v):
key_list = k.split('.')
key_list.reverse()
for i in key_list:
result = dict()
result[i] = v
v = result
return result
print nested_dict(k1, v1)
输出结果:
{'a': {'b': {'c': 1}}}
方法二:
def nested_dict_builder(data, k, v):
key_list = k.split('.')
curr_data = data
for i in key_list[:-1]:
if curr_data.has_key(i):
curr_data = curr_data[i]
else:
curr_data[i] = {}
curr_data = curr_data[i]
curr_data[key_list[-1]] = v
res = dict()
d1 = {'a.b.c':1, 'a.b.d':2, 'a.b.e':3}
for k, v in d1.items():
nested_dict_builder(res, k, v)
print res
输出结果:
{'a': {'b': {'c': 1, 'e': 3, 'd': 2}}}