我有下面的字典
_list = [
{ 'id': '1', 'contactName': 'John', 'contactEmail': 'John@abc.com', 'role': 'Developer' },
{ 'id': '2', 'contactName': 'Elon', 'contactEmail': 'Elon@abc.com', 'role': 'Developer' },
{ 'id': '3', 'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': 'Developer' },
{ 'id': '3', 'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': 'Tester' }
]密码在下面。你能告诉我错误在哪里吗?
list_dict = {}
for element in _list:
element_id = element.pop('id')
element_role = element.pop('role')
list_dict[element_id] = list_dict.get(emp_id, {})
list_dict[element_id].update(element)
list_dict[element_id]['role'] = list_dict[element_id].get('role', [])
list_dict[element_id]['role'].append(element_role)
test = {'contacts': list_dict}
print(test)我的出路是
{'contacts': {
'1': {'contactName': 'John', 'contactEmail': 'John@abc.com', 'role': ['Developer']},
'2': {'contactName': 'Elon', 'contactEmail': 'Elon@abc.com', 'role': ['Developer']},
'3': {'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': ['Tester']}
}}'Tester'
中。
我的期望是
{'contacts': {
'1': {'contactName': 'John', 'contactEmail': 'John@abc.com', 'role': ['Developer']},
'2': {'contactName': 'Elon', 'contactEmail': 'Elon@abc.com', 'role': ['Developer']},
'3': {'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': ['Developer', 'Tester']}
}}发布于 2021-08-12 01:33:33
首先,你的意见应该是:
_list = [{ 'id': '1', 'contactName': 'John', 'contactEmail': 'John@abc.com', 'role': 'Developer' },
{ 'id': '2', 'contactName': 'Elon', 'contactEmail': 'Elon@abc.com', 'role': 'Developer' },
{ 'id': '3', 'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': 'Developer' },
{ 'id': '3', 'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': 'Tester' }]我想你想念左边。我试过这个代码
list_dict = {}
for element in _list:
element_id = element.pop('id')
element_role = element.pop('role')
list_dict[element_id] = list_dict.get(element_id, {})
list_dict[element_id].update(element)
list_dict[element_id]['role'] = list_dict[element_id].get('role', [])
list_dict[element_id]['role'].append(element_role)
test = {'contacts': list_dict}
print(test)在for循环的第3行,我将您代码中的"emp_id“替换为"element_id”。所以它起作用了。我的结果是:
{"contacts": {'1': {'contactName': 'John', 'contactEmail': 'John@abc.com', 'role': ['Developer']}, '2': {'contactName': 'Elon', 'contactEmail': 'Elon@abc.com', 'role': ['Developer']}, '3': {'contactName': 'Suar', 'contactEmail': 'Suar@abc.com', 'role': ['Developer', 'Tester']}}}https://stackoverflow.com/questions/68750537
复制相似问题