首页 > 解决方案 > 在python中规范化dicts/lists的混合列表

问题描述

我有以下混合格式的大型地址数据集:

1) 房屋和公寓的简单直线变体:

"大区, 大街, House 1, flat 1",

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

district
    street 
        house
            flat
            flat

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

“大区,大街,House 1,flat 1”

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

"大区, 大街, House 1, Building 1, flat 1"

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

(所以有House 1 with flats和House 1 building 1 with flats)

district
    street
        house
            flat
            flat
            building
                flat
                flat

3)只有建筑物的房子的变种

"大区, 大街, House 1, Building 1, flat 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}
    ]

我真的很困惑如何制作这个算法。

标签: pythonalgorithmlistdictionary

解决方案


推荐阅读