如何使用 client_id 值在Python中合并以下嵌套字典?
{
0: {'id': u'171350479985198', 'title': u'Mrs'},
1: {'id': u'171350479985198', 'title': u'Mrs'},
2: {'id': u'81675316423225', 'title': u'NOT EXISTS'},
3: {'id': u'164299819070601', 'title': u'None'},
4: {'id': u'164299819070601', 'title': u'Mrs'},
5: {'family_name': u'FN7988', 'id': u'171350479985198'},
6: {'family_name': u'FN1909', 'id': u'171350479985198'},
7: {'family_name': u'NOT EXISTS', 'id': u'81675316423225'},
8: {'family_name': u'FN759E', 'id': u'164299819070601'},
9: {'family_name': u'FN37FD', 'id': u'164299819070601'},
10: {'id': u'171350479985198', 'description': u'Recurrent depressive disorder'},
11: {'id': u'81675316423225', 'description': u'Recurrent depressive disorder'},
12: {'id': u'164299819070601', 'description': u'Recurrent depressive disorder'}
}
因此,我需要以下字典。
{
0: {'id': u'171350479985198', 'title': u'Mrs', 'family_name': u'FN7988', 'description': u'Recurrent depressive disorder'},
1: {'id': u'171350479985198', 'title': u'Mrs', 'family_name': u'FN1909', 'description': u'Recurrent depressive disorder'},
2: {'id': u'81675316423225', 'title': u'NOT EXISTS', 'family_name': u'NOT EXISTS', 'description': u'Recurrent depressive disorder'},
3: {'id': u'164299819070601', 'title': u'None', 'family_name': u'FN759E', 'description': u'Recurrent depressive disorder' },
4: {'id': u'164299819070601', 'title': u'Mrs', 'family_name': u'FN37FD', 'description': u'Recurrent depressive disorder'}
}
答案 0 :(得分:1)
我只是假设结果中的重复记录是错误的并提出以下解决方案。
result = dict()
for key in d:
if 'id' in d[key]:
current_id = d[key]['id']
if current_id not in result:
result[current_id] = dict() #init dict
else:
for sub_key in d[key]:
if sub_key != 'id':
result[current_id][sub_key] =d[key][sub_key]
#Lastly Map back into the numbers
num_result = {}
result_key = [k for k in result]
# You can sort result key by some criteria if you want
for key_num in xrange(0,len(result_keys)):
result[result_key[key_num]]['id'] = result_key[key_num] #Adds the id back
num_result[key_num] = result[result_key[key_num]]
print num_result