构建字典列表
Constructing a list of dictionaries
我有这种格式的数据;
my_dict = {
'data1':[
{'age':32,'height':43,'weight':67},
{'age':21,'height':33,'weight':34}
],
'data2':[
{'name':'james','department':'web'},
{'name':'Joe','department':'social'}
]
}
我想获取年龄、体重和姓名。如何构建所有记录的字典列表?
例如)
data = [{'age':32, 'weight':43, 'name':'james'},
{'age':32, 'weight':33, 'name':'joe'} ]
任何帮助将不胜感激。
这是一种方法来做你想做的事。我们制作 data
一个空 dict
的列表,然后根据其中一个数据列表中的 dict
的索引,我们更新 [=] 中相应的 dict
12=]列表。
# list of empty dicts
data = [{} for i in range(2)]
# holds what info we want
select = {'age', 'weight', 'name'}
for k in my_dict:
for idx, i in enumerate(my_dict[k]):
data[idx].update({k: v for k, v in i.items() if k in select})
print(data)
输出
[{'age': 32, 'name': 'james', 'weight': 67},
{'age': 21, 'name': 'Joe', 'weight': 34}]
有多种方法可以做到这一点。一种易于理解的方法是使用 zip 迭代器执行 for 循环:
data = []
for data1, data2 in zip(my_dict.get('data1'), my_dict.get('data2')):
data.append({'age':data1.get('age'),
'weight':data1.get('weight'),
'name':data2.get('name')})
我有这种格式的数据;
my_dict = {
'data1':[
{'age':32,'height':43,'weight':67},
{'age':21,'height':33,'weight':34}
],
'data2':[
{'name':'james','department':'web'},
{'name':'Joe','department':'social'}
]
}
我想获取年龄、体重和姓名。如何构建所有记录的字典列表? 例如)
data = [{'age':32, 'weight':43, 'name':'james'},
{'age':32, 'weight':33, 'name':'joe'} ]
任何帮助将不胜感激。
这是一种方法来做你想做的事。我们制作 data
一个空 dict
的列表,然后根据其中一个数据列表中的 dict
的索引,我们更新 [=] 中相应的 dict
12=]列表。
# list of empty dicts
data = [{} for i in range(2)]
# holds what info we want
select = {'age', 'weight', 'name'}
for k in my_dict:
for idx, i in enumerate(my_dict[k]):
data[idx].update({k: v for k, v in i.items() if k in select})
print(data)
输出
[{'age': 32, 'name': 'james', 'weight': 67},
{'age': 21, 'name': 'Joe', 'weight': 34}]
有多种方法可以做到这一点。一种易于理解的方法是使用 zip 迭代器执行 for 循环:
data = []
for data1, data2 in zip(my_dict.get('data1'), my_dict.get('data2')):
data.append({'age':data1.get('age'),
'weight':data1.get('weight'),
'name':data2.get('name')})