繁体   English   中英

将字典列表中的键:值对包含到它们的嵌套字典中以成为字典列表[关闭]

[英]Include key:value pairs from a list of dictionary to their nested dictionaries to become a list of dictionaries [closed]

如何在嵌套字典的列表中包含key:value对以使其成为简单的字典列表?

listDic = [
    {key1: value1,
     key2: {key3:value3, key4:value4}},
    {key1: value5,
     key2: {key3:value6, key4:value7}}]

listDicMod = [
    {key1: value1,
     key3: value3,
     key4: value4},
    {key1: value5,
     key3: value6,
     key4: value7}]

我对列表推导做的不多,也不知道如何在列表推导中组合字典。 其他人可能能够帮助解决这部分问题。 我对如何解决此类问题的想法是检查数据的类型,因为这就是您想要的行为的区别所在。

listDic = [
    {"key1":"value1", "key2":{"key3":"value3", "key4":"value4"}},
    {"key1":"value5", "key2":{"key3":"value6", "key4":"value7"}}
]

# Create empty list
listDicMod = []

for row in listDic:
    # Create a dictionary for the row
    row_dict = {}
    for key in row:
        # If it's a dictionary, go deeper into the data
        if isinstance(row[key], dict):
            for key2 in row[key]:
                # Add this deeper data to the row_dict
                row_dict[key2] = row[key][key2]
        # Else, just add the key and value to the dictionary
        else:
            row_dict[key] = row[key]
    listDicMod.append(row_dict)

print(listDicMod)

上面的片段输出(我已经稍微清理了输出)

[
  {'key1': 'value1', 'key3': 'value3', 'key4': 'value4'},
  {'key1': 'value5', 'key3': 'value6', 'key4': 'value7'}
]

如果您在列表理解之外创建字典,您可能可以像临时空间一样使用它,但这可能需要您listDic中的每个项目都具有所有相同的键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM