【问题标题】:how to Convert Dict ( in which key is in tuple ) to nested Dictionary如何将字典(其中键在元组中)转换为嵌套字典
【发布时间】:2020-07-03 06:28:54
【问题描述】:

有一个字典,其中键是一个元组。

{('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
 ('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
  ('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}

基于月份我需要转换为嵌套的字典格式

如何把上面的dict转成这种格式

{
    "Feb": {
        "File1": {
            "100": {
                "1": 78,
                "2": 408,
                "3": 202,
                "4": 39
            },
            "101": {
                "1": 201,
                "2": 101,
                "3": 529,
                "4": 103
            }}},
    "May": {
        "File1": {
            "100": {
                "1": 78,
                "2": 402,
                "3": 20,
                "157": 39
            }}}
}

【问题讨论】:

    标签: dictionary python-3.7


    【解决方案1】:

    我认为这个解决方案可以解决您的问题。

    raw = {('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
           ('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
           ('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}
    
    new = {}
    for keys in raw.keys():
        new[keys[0]] = {keys[1]: {keys[2]: raw[keys]}}
    

    问候

    维尼修斯

    【讨论】:

    • 这是您的解决方案的输出 --- {'Feb': {'File1': {'101': {'1': 201, '2': 101, '3': 529, '4': 103}}}, '五月': {'File1': {'100': {'1': 78, '2': 402, '3': 20, '4': 39} }}} .. 但是对于 file1 中的 2 月,我有 2 个 ID(100、101)。在此输出中缺少 id 100 值
    【解决方案2】:

    您的问题的答案在下面的链接中给出,如果您仍有任何疑问,请回复。

    Creating dynamic nested dictionary of counts

    或者你可以这样做:

    dict = {('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
            ('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
            ('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}
    
    new = {}
    for u, v, w in dict:
      new.setdefault(u,{}).setdefault(v, {})[w] = dict[(u, v, w)]
    

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 2022-06-14
      • 2014-03-17
      • 2017-01-20
      • 2022-12-05
      相关资源
      最近更新 更多