У меня есть этот двумерный массив данных
[
['JOHN','blue',4,'FINISHED',572L],
['JOHN','blue','9','NOT STARTED',1357L],
['JOHN','orange','267','FINISHED',2973],
['JOHN','orange',0,'NOT STARTED',444L],
['ERIC','green','294','FINISHED',14867L],
['ERIC','green','14','NOT STARTED',517L],
['ERIC','green','0.00001','RUNNING',16L]
]
Значения здесь хранятся в DictCursor, поэтому каждый индекс строки связан с именем, поэтому
row[0]['name'] = 'JOHN'
row[0]['color'] = 'blue'
row[0]['size'] = '4'
row[0]['status'] = 'FINISHED'
row[0]['count'] = '572L'
Я бы хотел бы превратить 2d массив в словарь, сгруппировав первое и второе значения, а также сложив значения третьего столбца следующим образом:
{
'JOHN':{
'blue':{
'13':{
'FINISHED': ['572L'],
'NOT STARTED': ['1357L']
}
},
'orange': {
'267': {
'FINISHED': ['2873L'],
'NOT STARTED': ['444L']
}
}
}
'ERIC': {
'green' : {
'308.00001':{
'FINISHED': ['14867L'],
'NOT STARTED': ['517L'],
'RUNNING': ['16L']
}
}
}
}
Я уже пробовал это
new_final = {}
for result in total:
name = result['name']
name_group['name'].append(result)
for name in name_group:
for result in name_group[name]:
color = result['color']
final['name']['color'].append(result)
for name in final:
new_final['name'] = {}
for color in final['name']:
new_final['name']['color'] = {}
for row in final['name']['color']:
new_final['name']['color'][row['status']] = [str(row['count'])]
return new_final
однако это не дает мне числа, добавленные в другую группу
Любая помощь будет оценена !!!!