Задать вопрос
@ivanburdin

Как легко получать значение многоуровневого словаря?

Доброго времени суток! Получил словарь с большой вложенностью, не очень удобно писать каждый раз кучу ключей каждого словаря, что бы добраться до какого то уровня вложенности, например:
parsed_addr['response']['GeoObjectCollection']['featureMember']['GeoObject']['Point']['pos']

Подскажите, как проще это сделать?

сам словарь:

{'response': {'GeoObjectCollection': {'featureMember': [{'GeoObject': {'Point': {'pos': '37.690318 '
                                                                                        '55.796724'},
                                                                       'boundedBy': {'Envelope': {'lowerCorner': '37.685763 '
                                                                                                                 '55.793829',
                                                                                                  'upperCorner': '37.694836 '
                                                                                                                 '55.799547'}},
                                                                       'description': 'Москва, '
                                                                                      'Россия',
                                                                       'metaDataProperty': {'GeocoderMetaData': {'Address': {'Components': [{'kind': 'country',
                                                                                                                                             'name': 'Россия'},
                                                                                                                                            {'kind': 'province',
                                                                                                                                             'name': 'Центральный '
                                                                                                                                                     'федеральный '
                                                                                                                                                     'округ'},
                                                                                                                                            {'kind': 'province',
                                                                                                                                             'name': 'Москва'},
                                                                                                                                            {'kind': 'locality',
                                                                                                                                             'name': 'Москва'},
                                                                                                                                            {'kind': 'street',
                                                                                                                                             'name': 'улица '
                                                                                                                                                     'Короленко'}],
                                                                                                                             'country_code': 'RU',
                                                                                                                             'formatted': 'Москва, '
                                                                                                                                          'улица '
                                                                                                                                          'Короленко'},
                                                                                                                 'AddressDetails': {'Country': {'AddressLine': 'Москва, '
                                                                                                                                                               'улица '
                                                                                                                                                               'Короленко',
                                                                                                                                                'AdministrativeArea': {'AdministrativeAreaName': 'Москва',
                                                                                                                                                                       'Locality': {'LocalityName': 'Москва',
                                                                                                                                                                                    'Thoroughfare': {'ThoroughfareName': 'улица '
                                                                                                                                                                                                                         'Короленко'}}},
                                                                                                                                                'CountryName': 'Россия',
                                                                                                                                                'CountryNameCode': 'RU'}},
                                                                                                                 'kind': 'street',
                                                                                                                 'precision': 'street',
                                                                                                                 'text': 'Россия, '
                                                                                                                         'Москва, '
                                                                                                                         'улица '
                                                                                                                         'Короленко'}},
                                                                       'name': 'улица '
                                                                               'Короленко'}}],
                                      'metaDataProperty': {'GeocoderResponseMetaData': {'found': '1',
                                                                                        'request': 'Москва '
                                                                                                   'Короленко',
                                                                                        'results': '10'}}}}}
  • Вопрос задан
  • 395 просмотров
Подписаться 3 Простой 2 комментария
Решения вопроса 1
adugin
@adugin Куратор тега Python
branch = parsed_addr['response']['GeoObjectCollection']['featureMember']['GeoObject']['Point']
branch['pos']

Либо используйте класс наподобие attrdict, будет нотация вида:
parsed_addr.response.GeoObjectCollection.featureMember.GeoObject.Point.pos
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Авторы АПИ тебе любезно помогут

после спотыкания о
{'featureMember': [{'GeoObject':

быстро привыкнешь к
data = ['response'] ['GeoObjectCollection'] ['featureMember']
    for i in data:


и вот уже в i все короче и влазит в 80 символов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы