繁体   English   中英

使用递归更改 python 字典的结构

[英]Change structure of python dictionary using recursion

我有以下字典:

{
    "Land": {
        "2018": {
            "VALUE:Avg": 49.0,
            "VALUE:Sum": 49.0
        },
        "2008": {
            "VALUE:Avg": 27.24,
            "VALUE:Sum": 27.24
        }
    },
    "Air": {
        "2010": {
            "VALUE:Avg": 57.4,
            "VALUE:Sum": 57.4
        },
        "2017": {
            "VALUE:Avg": 30.72,
            "VALUE:Sum": 61.44
        }
    }
}

我必须将其更改为以下格式,父键作为标签,值作为子级:

[
    {
        "label": "Land",
        "children": [
            {
                "label": "2018",
                "children": [
                    {
                        "label": "VALUE:Avg"
                    },
                    {
                        "label": "VALUE:Sum"
                    }
                ]
            },
            {
                "label": "2008",
                "children": [
                    {
                        "label": "VALUE:Avg"
                    },
                    {
                        "label": "VALUE:Sum"
                    }
                ]
            }
        ]
    },
]

我试图实现这种递归但没有工作

递归应该可以工作,请帮助检查以下代码是否可以完成工作

def transfer(mydict):

    result = []

    for key, value in mydict.items():
        temp = {"label":key}
        if isinstance(value, dict):
            temp["children"] = transfer(value)
        result.append(temp)
    return result

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM