如何从python的字典中提取信息

时间:2019-06-25 18:40:24

标签: python google-maps dictionary google-maps-api-2

我正在尝试从字典中提取经度和纬度并将其存储为变量。我正在使用gmaps api对街道地址进行地理编码。如果您知道为什么还有三个值也会对纬度和经度产生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 :(得分:0)

您只需访问结果字典即可获取纬度和经度:

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

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

注意:接收“经度/纬度的三个不同值”与地理位置和the compass itself略有关系。

答案 1 :(得分:0)

根据Google Map's documentation

  

几何包含以下信息:

     

位置包含地理编码的纬度,经度值。对于正常   地址查询,该字段通常是最重要的。

     

通常,在以下情况下,视口用于构图   显示给用户。

要从字典中提取经度和纬度:

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