如何在python中处理二维dict?

2024-07-02 14:36:36 发布

您现在位置:Python中文网/ 问答频道 /正文

输入数据

{'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',...}}  

等等

有什么想法吗?????你知道吗


Tags: to数据falsefoodtypemailokgender
1条回答
网友
1楼 · 发布于 2024-07-02 14:36:36
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'}}

相关问题 更多 >