如何解决每个键中具有不同层数的嵌套字典
我有如下嵌套的字典
'Internal'
我必须创建以下格式的新字典:
{
"A":
{"B":
{"C":
{"D": ['1','2','3']
}
}
},"AA":
{"BB":
{"CC": ['11','22']}
}
}
也就是说,新词典的键是以“ xx”为前缀的原始词典键,值是原始词典的值。
尝试5小时后,我仍然被困住。 有人愿意剥洋葱吗?
以下功能是我的两次尝试。
{"xx-A-B-C-D": ['1','3'],"xx-AA-BB-CC": ['11','22']}
解决方法
使用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','3'],'xx-AA-BB-CC': ['11','22']}
print(r)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。