从字典中的值和嵌套字典中的值创建新字典



我想创建一个新的dict的值从2 dict: dict1和dict2

dict1 = {'Jame': {'ID':'158', 
'Age':'28', 
'Tall':'5.11',
..., 
'Point': [{'IELTS':'525', 
'SAT':'700', 
'TOEFL':'500',
...],
'Hair':'Blond',
'Gender':'Male',
...},
'Caroline': {'ID':'135', 
'Age':'26', 
'Tall':'5.7',
..., 
'Point': [{'IELTS':'655', 
'SAT':'700', 
'TOEFL':'500',
...],
'Hair':'Black',
'Gender':'Female',
...}}

dict2 = {'Age'='A1','Tall'='A2','Point'='A3','IELTS'='B1','SAT'='B2','TOEFL'='B3'}

我想通过dict1和dict2的值创建一个新的字典。输出:

new = {'Jame': {'ID':'158', 
'A1':'28', 
'A2':'5.11',
..., 
'A3': [{'B1':'525', 
'B2':'700', 
'B3':'500',
...],
'Hair':'Blond',
'Gender':'Male',
...},
'Caroline': {'ID':'135', 
'A1':'26', 
'A2':'5.7',
..., 
'A3': [{'B1':'655', 
'B2':'700', 
'B3':'500',
...],
'Hair':'Black',
'Gender':'Female',
...}}

我想尝试一些代码,但它不工作

newdict = dict (zip (dict2.values (), dict1.values ()))

newdict = {{v for k,v in dict2.items()} if key in dict2.keys() else key):value对于键,值在dict1.items()}

newdict = {dic1;Get (key, dict2[key]):key for key in dict2}

你可以这样做:

import ast
dict1 = {'Jame': {'ID': '158',
'Age': '28',
'Tall': '5.11',
'Point': [{'IELTS': '525',
'SAT': '700',
'TOEFL': '500'}],
'Hair': 'Blond',
'Gender': 'Male'},
'Caroline': {'ID': '135',
'Age': '26',
'Tall': '5.7',
'Point': [{'IELTS': '655',
'SAT': '700',
'TOEFL': '500'}],
'Hair': 'Black',
'Gender': 'Female'}}
dict2 = {'Age': 'A1', 'Tall': 'A2', 'Point': 'A3', 'IELTS': 'B1', 'SAT': 'B2', 'TOEFL': 'B3'}
string_dict = str(dict1)
for k, v in dict2.items():
string_dict = string_dict.replace(k, v)
dict1 = ast.literal_eval(string_dict)

最新更新