输入数据
{'NOMSEXITInterview__INTTYPE_2': u'2',
'NOMSEXITInterview__INTDUR_2': u'3',
'NOMSEXITInterview__GENDER_2': u'3',
'NOMSEXITInterview__EMPLOY_2': u'6',
'Referral__referral_type': u'food',
'Referral__ok_to_mail': u'False',
'Referral__okay_to_call': u'False',
'Referral__okay_to_leave_message': u'True',
'data_model_name': ['NOMSEXITInterview', 'Referral']}
我想输出以下定义格式
{'NOMSEXITInterview':{'INTTYPE_2':'2','INTDUR_2':'3','GENDER_2','EMPLOY_2':'6'}}
{'Referral':{'referral_type':'food',...}}
等等
任何想法?????
答案 0 :(得分:2)
data = {'NOMSEXITInterview__INTTYPE_2': u'2',
'NOMSEXITInterview__INTDUR_2': u'3',
'NOMSEXITInterview__GENDER_2': u'3',
'NOMSEXITInterview__EMPLOY_2': u'6',
'Referral__referral_type': u'food',
'Referral__ok_to_mail': u'False',
'Referral__okay_to_call': u'False',
'Referral__okay_to_leave_message': u'True',
'data_model_name': ['NOMSEXITInterview', 'Referral']}
result = {}
for k, v in data.items():
parts = k.split("__")
if len(parts) == 2:
result.setdefault(parts[0], {})[parts[1]] = v
else:
result[k] = v
print result
<强>输出强>
{'Referral': {'referral_type': u'food', 'ok_to_mail': u'False', 'okay_to_call': u'False', 'okay_to_leave_message': u'True'},
'data_model_name': ['NOMSEXITInterview', 'Referral'],
'NOMSEXITInterview': {'INTTYPE_2': u'2', 'INTDUR_2': u'3', 'GENDER_2': u'3', 'EMPLOY_2': u'6'}}