Как извлечь информацию из словаря в Python - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь извлечь широту и долготу из словаря и сохранить ее как переменную. Я использую API gmaps для геокодирования адреса улицы. Я также получаю 3 разных значения для широты и долготы, если вы знаете, почему есть три, которые также были бы полезны.

>>> geocode_result = gmaps.geocode('1280 Main St W, Hamilton, ON')
>>> print(geocode_result)
{'address_components': [{'long_name': '1280',
                          'short_name': '1280',
                          'types': ['street_number']},
                         {'long_name': 'Main Street West',
                          'short_name': 'Main St W',
                          'types': ['route']},
                         {'long_name': 'Cootes Paradise A',
                          'short_name': 'Cootes Paradise A',
                          'types': ['neighborhood', 'political']},
                         {'long_name': 'Hamilton',
                          'short_name': 'Hamilton',
                          'types': ['locality', 'political']},
                         {'long_name': 'Hamilton Division',
                          'short_name': 'Hamilton Division',
                          'types': ['administrative_area_level_2',
                                    'political']},
                         {'long_name': 'Ontario',
                          'short_name': 'ON',
                          'types': ['administrative_area_level_1',
                                    'political']},
                         {'long_name': 'Canada',
                          'short_name': 'CA',
                          'types': ['country', 'political']},
                         {'long_name': 'L8S 4L8',
                          'short_name': 'L8S 4L8',
                          'types': ['postal_code']}],
  'formatted_address': '1280 Main St W, Hamilton, ON L8S 4L8, Canada',
  'geometry': {'location': {'lat': 43.2622445, 'lng': -79.9202861},
               'location_type': 'ROOFTOP',
               'viewport': {'northeast': {'lat': 43.2635934802915,
                                          'lng': -79.91893711970849},
                            'southwest': {'lat': 43.26089551970851,
                                          'lng': -79.92163508029151}}},
  'place_id': 'ChIJnQcWjrKELIgR_dppfQg8IB8',
  'plus_code': {'compound_code': '736H+VV Hamilton, Ontario, Canada',
                'global_code': '87M2736H+VV'},
  'types': ['street_address']}]

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Согласно документации Google Map :

геометрия содержит следующую информацию:

location содержит геокодированную широту, значение долготы.Для обычного поиска адреса это поле, как правило, является наиболее важным.

Обычно область просмотра используется для формирования результата при отображении его пользователю.

Для извлечения долготы и широтыиз словаря:

longitude = geocode_result['geomtery']['location']['lng']
latitude = geocode_result['geomtery']['location']['lat']
0 голосов
/ 25 июня 2019

Вы можете получить широту и долготу, просто открыв словарь результатов:

location = geocode_result['geometry']['location']

latitude = location['lat']
longitude = location['lng']

Примечание : получение "трех различных значений для широты / долготы" слегка связанок географии и сам компас .

...