规范化python中dict/list的混合列表

2024-10-01 02:23:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的地址数据集,格式如下:

1)简单的直式房屋和公寓:

“大区,大街,1号楼,1号公寓”

“大区,主街,1号楼,2号楼”

district
    street 
        house
            flat
            flat

2)房屋、公寓和建筑物的复杂变体:

“大区,主街,1号楼,1号公寓”

“大区,主街,1号楼,2号楼”

“大区,主街,1号楼,1号公寓”

“大区,主街,1号楼,1号楼,2号楼”

(因此有1号楼有公寓,1号楼有公寓)

district
    street
        house
            flat
            flat
            building
                flat
                flat

3)只有建筑物的房屋类型

“大区,主街,1号楼,1号公寓”

“大区,主街,1号楼,1号楼,2号楼”

“大区,主街,1号楼,2号楼,1号楼”

“大区,主街,1号楼,2号楼,2号楼”

(本例中没有无建筑物的1号房屋,只有1号房屋1号楼和1号房屋2号楼)

district
    street
        house
            building
                flat
                flat
            building
                flat
                flat

数据结构如下:

    [
        {"text": "street 1",
         "level": 7,
        "children":[
            {"text": "house 1",
             "level":8,
             "children":[
                {"text": "flat 1", "level": 11},
                {"text": "flat 2", "level": 11}
             ]
            },
            {"text": "house 2",
             "level": 8,
             "children":[
                {"text": "building 1",
                 "level": 9,
                 "children":[
                    {"text": "flat 1", "level": 11}
                 ]
                },
                {"text": "flat 1", "level": 11}
             ]
            },
            {"text": "house 3",
             "children": []
            }
        ]
        }
    ]

我需要的是一份单子:

    [
    {"level 7": "Street 1", "level 8": "house 1", "level 9": NaN, "level 11":"flat 1"},
    {"level 7": "Street 1", "level 8": "house 1", "level 9": NaN, "level 11":"flat 2"},
    {"level 7": "Street 1", "level 8": "house 2", "level 9": "building 1", "level 11":"flat 1"},
    {"level 7": "Street 1", "level 8": "house 2", "level 9": NaN, "level 11":"flat 1"},
    {"level 7": "Street 1", "level 8": "house 3", "level 9": NaN, "level 11":NaN}
    ]

我真的被困在如何制作这个算法。你知道吗


Tags: textstreetnanlevelhousechildren公寓building