нормализовать смешанный список диктов / списков в python - PullRequest
0 голосов
/ 08 ноября 2018

У меня большой набор адресов в следующих смешанных форматах:

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}
    ]

И я действительно застрял, как сделать этот алгоритм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...