python - 在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}
]
我真的很困惑如何制作这个算法。
解决方案
推荐阅读
- r - R data.table:使用 %like% 和 setkey
- binary - 这个映射是哪个二进制操作?
- mysql - 具有限制的联合查询的行的 rand()
- python - Python:沿着连接点集的线的等距点
- monitoring - 通过 ITRS Geneos 进行 Rundeck 监控
- html - 将文本框放置在图像上
- javascript - 无法在 Angular2 中进行 http 服务调用?
- twig - twig drupal中的拆分url功能
- angular - 在 angular4 中实现 HighCharts-xrange
- maven - 插件本身不能添加 buildscript 依赖然后应用 dokka-android 插件