I have a dictionary as follows:
data =` {0: {'all_claims': {'claim_id': 'FL113120719',
'state': 'FL',
'status': 'open',
'status_in_progress': False},
1: None,
'fl_claims': {'reporting_company': 'CHARLES SCHWAB & CO INC',
'property_type': 'OTHER O/S OFFICIAL CHECKS',
'amount': 0.11,
'claim_id': 'FL113120719'},
'fl_claim_people': {'first_name': ['AMANDA', 'LAURA'],
'last_name': ['GUYATT', 'GUYATT'],
'middle_name': ['JEAN', None],
'street_address': ['2581 COUNTRYSIDE BLVD. # 2213',
'2581 COUNTRYSIDE BLVD. # 2213'],
'city': ['CLEARWATER', 'CLEARWATER'],
'state': ['FL', 'FL'],
'zip_code': ['33761', '33761'],
'county': [None, None],
'zip_code_suffix': [None, None],
'latitude': [None, None],
'longitude': [None, None],
'latlong_c_score': [None, None],
'claim_id': ['FL113120719', 'FL113120719']}}}`
现在,我必须从嵌套字典内的列表中删除重复值。另外,该函数应该是递归的,并且应该传递两个参数,例如:
remove_duplicates(dict , 'street_address')
def remove_duplicate(duplicate_values_dict, dict_keys):
for key, value in duplicate_values_dict.items():
if key in dict_keys:
duplicate_values_dict[key] = set(value)
return duplicate_values_dict
Here, I am unable to pass tuple of key, as in the question.
该函数应从指定键中删除重复的值,并将其附加到新字典中。
我该如何解决问题?
答案 0 :(得分:0)
您共享的数据包含嵌套字典,因此我创建了一个递归函数:
def remove_duplicate(duplicate_values_dict, dict_keys):
if dict_keys in duplicate_values_dict.keys():
print(duplicate_values_dict[dict_keys])
duplicate_values_dict[dict_keys] = list(set(duplicate_values_dict[dict_keys]))
for key, value in duplicate_values_dict.items():
if isinstance(value, dict):
remove_duplicate(value,dict_keys)
您可以使用字典和按键来调用此函数:
remove_duplicate(data,'last_name')
键“ last_name”最初包含重复项:['GUYATT','GUYATT']。调用remove_duplicate(data,'last_name')之后,您会发现您的'data'仅包含键'last_name'的['GUYATT']