📜  Python – Unnest 单键嵌套字典列表

📅  最后修改于: 2022-05-13 01:55:43.572000             🧑  作者: Mango

Python – Unnest 单键嵌套字典列表

有时,在处理Python数据时,我们可能会遇到一个问题,即我们需要对所有具有单个键嵌套的字典进行取消嵌套,即单个键和值,并且可以轻松地直接指向外部键。这种问题在需要数据优化的领域很常见。让我们讨论可以执行此任务的某些方式。

方法 #1:使用循环 + items()
上述方法的组合可以用来解决这个问题。在此,我们迭代列表中的值,使用循环并使用 items() 提取所有字典项,并使用蛮力方法执行新字典创建。

# Python3 code to demonstrate working of 
# Unnest single Key Nested Dictionary List
# Using loop + items()
  
# initializing list
test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing key 
data_key = 'data'
  
# Unnest single Key Nested Dictionary List
# Using loop + items()
res = dict()
for sub in test_list:
    for key, val in sub.items():
        res[key] = sub[key][data_key]
  
# printing result 
print("The constructed Dictionary list : " + str(res)) 
输出 :

方法#2:使用列表推导
这是可以执行此任务的另一种方式。在此,我们以类似的方法执行解决方案,但使用列表理解以速记方式。

# Python3 code to demonstrate working of 
# Unnest single Key Nested Dictionary List
# Using list comprehension
  
# initializing list
test_list = [{'gfg' : {'data' : 1}}, {'is' : {'data' : 5}}, {'best' : {'data' : 4}}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing key 
data_key = 'data'
  
# Unnest single Key Nested Dictionary List
# Using list comprehension
res = {x : y[data_key] for idx in test_list for x, y in idx.items()}
  
# printing result 
print("The constructed Dictionary list : " + str(res)) 
输出 :