2D массив в словарь / JSON в Python по группировке значений - PullRequest
1 голос
/ 09 апреля 2020

У меня есть этот двумерный массив данных

[
['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

однако это не дает мне числа, добавленные в другую группу

Любая помощь будет оценена !!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...