在python中转换嵌套的dict

时间:2017-12-21 18:03:16

标签: python dictionary

我想知道在python中转换以下dict的pythonic方法:

a = {1: {'region': 'us-west'
     },

 2: {'region': 'us-west'
     }
 }

采取以下形式:

new_a = {'us-west': {1: {'data': {},
                     'metadata': {}
                     },
                 2: {'data': {},
                     'metadata': {}
                     }
                 }
     }

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

c = {1: {'region': 'us-west'
  },

  2: {'region': 'us-west'
    }
}
new_a = {b['region']:{i:{'data':{}, 'metadata':{}} for i in c} for a, b in c.items()}

输出:

{'us-west': {1: {'data': {}, 'metadata': {}}, 2: {'data': {}, 'metadata': {}}}}

答案 1 :(得分:0)

您还没有真正告诉我们您正在寻找的具体内容,或者提供了更通用的数据集,但您可以尝试这样做:

new_a = {}
for key in a.keys():
    if a[key]['region'] not in new_a:
        new_a[a[key]['region']] = {}
    new_a[a[key]['region']][key] = { 'data': {}, 'metadata':{}}