如何在 python 3 中从 google 地理编码 API 获取纬度/经度?

How do I get lat / long from google geocode API in python 3?

当使用下面的代码时,我得到了很多数据,但我只想存储纬度,只要一个字符串。

它看起来像一本字典,我试图像字典一样访问它:strtLoc['location'] 但只是得到一个索引必须是整数错误。当我尝试建立索引时,只有一个条目 len(strtLoc) returns 1。在 javascript 中,我看到了类似 strtLoc.location 的内容,但我不知道如何只获取python.

中的纬度和经度

Python代码: strtLoc = gmaps.geocode( address=startP)

结果:

[{'types': ['locality', 'political'], 'formatted_address': 'New York, NY, USA', 'address_components': [{'long_name': 'New York', 'types': ['locality', 'political'], 'short_name': 'New York'}, {'long_name': 'New York', 'types': ['administrative_area_level_1', 'political'], 'short_name': 'NY'}, {'long_name': 'United States', 'types': ['country', 'political'], 'short_name': 'US'}], 'geometry': {'viewport': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location_type': 'APPROXIMATE', 'bounds': {'southwest': {'lat': 40.4773991, 'lng': -74.25908989999999}, 'northeast': {'lat': 40.9175771, 'lng': -73.70027209999999}}, 'location': {'lat': 40.7127837, 'lng': -74.0059413}}, 'place_id': 'ChIJOwg_06VPwokRYv534QaPC8g', 'partial_match': True}]

问题是 API returns 是一个包含单个元素的列表,因此您可以使用 strtLoc = strtLoc[0] 访问它。然后就可以访问location键下的lat和lng属性了。

strtLoc = strtLoc[0]
location = strtLoc['geometry']['location']
lat = location['lat']
lng = location['lng']

如果你想把它作为一个字符串,你可以使用 str.join()

用逗号连接它们
location = ','.join([str(lat), str(lng)])