我有如下嵌套的字典
'Internal'
我必须创建以下格式的新字典:
{
"A":
{"B":
{"C":
{"D": ['1','2','3']
}
}
},
"AA":
{"BB":
{"CC": ['11', '22']}
}
}
也就是说,新词典的键是以“ xx”为前缀的原始词典键,值是原始词典的值。
尝试5小时后,我仍然被困住。 有人愿意剥洋葱吗?
以下功能是我的两次尝试。
{"xx-A-B-C-D": ['1','2','3'], "xx-AA-BB-CC": ['11','22']}
答案 0 :(得分:0)
使用flatten_dict
库:
第1步:使用pip install flatten-dict
第2步:
2.1。将flatten
函数与字典一起使用,并使用special_reducer
确定如何连接值。
d= {
"A":
{"B":
{"C":
{"D": ['1','2','3']
}
}
},
"AA":
{"BB":
{"CC": ['11', '22']}
}
}
from flatten_dict import flatten
def special_reducer(k1, k2, seperator='-', prefix='xx'):
if k1 is None:
return prefix + seperator + k2
else:
return k1 + seperator + k2
r = flatten(d, reducer=special_reducer)
# {'xx-A-B-C-D': ['1', '2', '3'], 'xx-AA-BB-CC': ['11', '22']}
print(r)