首页 > 解决方案 > Python中通过对值进行分组的二维数组到字典/ JSON

问题描述

我有这个二维数据数组

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

我想通过将第一个和第二个值组合在一起并将第三列的值加在一起,将二维数组转换为字典,如下所示:

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

但是这并没有给我添加到另一个组中的数字

任何帮助,将不胜感激!!!!

标签: pythonarraysjsondictionarymultidimensional-array

解决方案


推荐阅读