У меня большой набор адресов в следующих смешанных форматах:
1) Простой прямой вариант домов и квартир:
"Большой Район, Мейн-стрит, дом 1, квартира 1",
"Большой Район, Мейн-стрит, дом 1, квартира 2"
district
street
house
flat
flat
2) Комплексный вариант домов, квартир и зданий:
"Большой Район, Мейн-стрит, дом 1, квартира 1"
"Большой Район, Мейн-стрит, дом 1, квартира 2"
"Большой Район, Мейн-стрит, дом 1, строение 1, квартира 1"
"Большой Район, Главная улица, дом 1, строение 1, квартира 2"
(Таким образом, есть Дом 1 с квартирами и Дом 1 с квартирами 1)
district
street
house
flat
flat
building
flat
flat
3) Варинат дома, в котором есть только здания
"Большой Район, Мейн-стрит, дом 1, строение 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}
]
И я действительно застрял, как сделать этот алгоритм.