Мне нужно сгруппировать список dict по кортежу полей и написать функцию, которая сделает это для разных наборов данных.
Например: список dict:
[{'bnf_code': '0101010G0AAABAB',
'items': 2,
'practice': 'N81013',
'bnf_name': 'Co-Magaldrox_Susp 195mg/220mg/5ml S/F',
'nic': 5.98,
'act_cost': 5.56,
'quantity': 1000},
{'bnf_code': '0101021B0AAAHAH',
'items': 1,
'practice': 'N81013',
'bnf_name': 'Alginate_Raft-Forming Oral Susp S/F',
'nic': 1.95,
'act_cost': 1.82,
'quantity': 500}]
и я хочу сгруппировать кортеж -> ('bnf_name', 'post_code'))
.
Я не могу использовать pandas.
Я пробовал с приведенным ниже кодом, но он вызывает KeyError .
def group_by_field(data,fields):
groups = {name: [] for name in fields}
for script in data:
for name in fields:
groups[script[name]].append(script)
return groups