req_dict = {
1: {'f1': 'name', 'f2': 'age', 'f3': 'class'},
2: {'f1': 'company', 'f2': 'salary', 'f3': 'age', 'f4': 'class'},
3: {'f1': 'Feature', 'f2': 'sum', 'f3': 'diff', 'f4': 'multiply', 'f5': 'div'}
}
level_input = [
{3: {'sum': 'NONE', 'diff': 'yes', 'multiply': 'NONE', 'div': 'NONE', 'FEATURE': 'Maths'}},
{2: {'COMPANY': 'NONE', 'SALARY': 'Pass', 'AGE': 'NONE', 'CLASS': 'unknown'}},
{1: {'NAME': 'Pass', 'AGE': 'NONE', 'CLASS': '3'}}
]
我需要输出
updated_level_input = [
{3: {'f1': 'Maths', 'f2': 'none', 'f3': 'yes', 'f4': 'NONE', 'f5': 'NONE'}},
{2: {'f1': 'NONE', 'f2': 'Pass', 'f3': 'NONE', 'f4': 'unknown'}},
{1: {'f1': 'Pass', 'f2': 'NONE', 'f3': '3'}}
]
我试过下面的代码
level_dict = {}
[level_dict.update(key) for key in levels_input]
for key in req_dict:
#print key
for dict_key in req_dict[key]:
print dict_key
searchKey = req_dict[key][dict_key]
print searchKey.upper()
if searchKey.upper() in level_dict[key].keys():
#print level_dict[key].keys()
req_dict[key][dict_key] = req_dict[key][searchKey.upper()]
else:
req_dict[key][dict_key] = level_dict[key][searchKey]
print [req_dict]
但我得到的输出为
updated_level_input=[
{3: {'f1': 'Maths', 'f2': 'none', 'f3': 'yes', 'f4': 'NONE', 'f5': 'NONE'},
2: {'f1': 'NONE', 'f2': 'Pass', 'f3': 'NONE', 'f4': 'unknown'},
1: {'f1': 'Pass', 'f2': 'NONE', 'f3': '3'}}
]
基本上我尝试修改req_dict
输入,而不是correct.i
应该修改level_input
列表
答案 0 :(得分:1)
您的代码没有拆分req_dict,因此最后一个print语句只打印出一个字典列表,即req_dict。尝试使用以下内容替换最后一个print语句:
print [{key: value} for key, value in req_dict.iteritems()]