Flatten嵌套字典-将列表元素转换为字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flatten嵌套字典-将列表元素转换为字符串相关的知识,希望对你有一定的参考价值。

我具有以下结构的嵌套字典:

dict = {id1:{'key11':['value11'],'key12':['value12']}, id2:{'key21':['value21'],'key22':['value22']}}

我如何获得:

dict = {id1:{'key11': 'value11','key12':'value12'}, id2:{'key21':'value21','key22':'value22'}}

附加问题:如果键和值不遵循特定逻辑,但每个元素都是唯一的,则解决方案将如何更改;例如下面的示例:

dictionary = {'ida':{'abc':['def'],'fgh':[ijk']}, 'idb':{'lmn':[opq'],'rst':['uvw']}}

谢谢!

注意:之所以得到这种结构,是因为我在代码的前面使用了列表/映射结构,以从XML文件中提取文本,从而产生列表值。

get_text = lambda x: x.text
content = [list(map(get_text, i)) for i in content]
答案

此作品:

dictionary = {'id1':{'key11':['value11'],'key12':['value12']}, 'id2':{'key21':['value21'],'key22':['value22']}}

new_dict = {key: {key1:value1[0] for key1, value1 in value.items()} for key, value in dictionary.items()}
new_dict
#{'id1': {'key11': 'value11', 'key12': 'value12'},
# 'id2': {'key21': 'value21', 'key22': 'value22'}}

而且,我不会使用预定义的术语,例如dict

以上是关于Flatten嵌套字典-将列表元素转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

将列表转换为 DataFrame 并在 DataFrame 列中拆分嵌套字典 - Python 3.6

从嵌套列表创建字典 [重复]

Python 7 列表 for 字典,嵌套

Python 7 列表 for 字典,嵌套

将嵌套列表的字典转换为元组列表

Pyspark 将列表列转换为嵌套结构列