List 使用Python(Google Maps API)从地理编码结果列表中提取lat/lon

List 使用Python(Google Maps API)从地理编码结果列表中提取lat/lon,list,python-2.7,google-maps-api-2,matplotlib-basemap,geocode,List,Python 2.7,Google Maps Api 2,Matplotlib Basemap,Geocode,我正在尝试将GoogleMaps API与GoogleMaps Python库一起使用,以便在提供全部或部分地址时对纬度/经度进行地理编码(在本例中,我使用的是城市/州,但我也有只包含邮政编码的数据集,我需要使用这些数据集进行后续处理) 我的问题是我不确定如何从这个列表中提取适当的lat/lon值。我尝试使用以下代码解析列表(取自对的答案): 当我运行这个时,我得到一个索引器,说索引超出范围。我也通过调试器运行了它,但是我在没有任何附加信息的情况下得到了相同的错误。我在谷歌上搜索了一下其他的SO

我正在尝试将GoogleMaps API与GoogleMaps Python库一起使用,以便在提供全部或部分地址时对纬度/经度进行地理编码(在本例中,我使用的是城市/州,但我也有只包含邮政编码的数据集,我需要使用这些数据集进行后续处理)

我的问题是我不确定如何从这个列表中提取适当的lat/lon值。我尝试使用以下代码解析列表(取自对的答案):

当我运行这个时,我得到一个索引器,说索引超出范围。我也通过调试器运行了它,但是我在没有任何附加信息的情况下得到了相同的错误。我在谷歌上搜索了一下其他的SO问题,但我仍然不确定问题出在哪里

作为补充说明,我也尝试使用中的代码示例,但当我尝试运行它时,我得到了一个“0”作为我的答案,不幸的是,这甚至没有索引器有用

我的目标是能够从这里解析适当的lat/lon值,并将它们动态地插入到这个basemap脚本中。值目前是硬编码的,但最终我希望能够为值llcrnrlon、llcrnrlat、urcrnlon、urcrnlat、lat_0和lon_0使用一个变量:

map = Basemap(projection='merc',
          # with high resolution,
          resolution= 'h',
          # And threshold 100000
          area_thresh = 100000.0,
          # Centered on these coordinates
          lat_0=37, lon_0=119,
          #and using these corners to specify the lower left lon/lat and upper right lon/lat of the graph)
          llcrnrlon=-130, llcrnrlat=30,
          urcrnrlon=-110, urcrnrlat=45)

我对这一切都是全新的,所以可能有一个简单的答案,我只是没有看到。欢迎任何帮助!谢谢

我能够向我的一些开发伙伴寻求帮助,我在这里回答了我自己的问题,希望它能帮助其他同样面临同样问题的人

地理编码结果返回一个JSON对象,在Python中,该对象被视为只包含单个对象(结果)的字典。因此,为了提取适当的纬度值,您需要使用“地理编码_结果[0][“几何体”][“位置”][“纬度”]”,其中[0]是数组中的第一个对象(结果)

我编写这个函数是为了在我的Basemap脚本中使用它来从作为参数传入的位置提取lat/lon值

def geocode_address(loc):
    gmaps = googlemaps.Client(key=[insert your API key here])
    geocode_result = gmaps.geocode(loc)
    lat = geocode_result[0]["geometry"]["location"]["lat"]
    lon = geocode_result[0]["geometry"]["location"]["lng"]
    #test - print results
    print (lat,lon)
当我使用加利福尼亚州萨克拉门托作为loc进行测试时:

geocode_address('Sacramento, CA')
这是我的结果:

Result: 38.5815719, -121.4943996

为什么要投否决票?我只是想学习…..尝试了这段代码,现在我在“0”索引上得到了“索引超出范围”。也许回复已经改变了。自从我第一次写回复后,我就没有更新过这篇文章。这在当时对我很有效。您完全按照书面形式使用它,或者您是否以任何方式更改了它?
geocode_address('Sacramento, CA')
Result: 38.5815719, -121.4943996