如何使用Python根据一个城市确定一个地区、国家和大陆?

如何使用Python根据一个城市确定一个地区、国家和大陆?,python,Python,因此,我有一个城市和州/地区组合列表(其中一些城市没有成对的州/地区),我想用这些来填写国家、大陆(以及未提供的州/地区)信息。在适合多个地区的地方,我愿意接受其中任何一个,尽管最大的地区最好。什么是最简单的Python库,可以让我这样做 举个例子:给定“伊斯坦布尔”,我想要的是: {伊斯坦布尔,伊斯坦布尔省,土耳其,欧洲}你真的不需要任何图书馆。您需要的是地理位置列表。如果您没有可以使用的在线地理定位服务,那么可以通过http(以及urllib)访问这些服务。您可能需要一个库来解释响应,例如,

因此,我有一个城市和州/地区组合列表(其中一些城市没有成对的州/地区),我想用这些来填写国家、大陆(以及未提供的州/地区)信息。在适合多个地区的地方,我愿意接受其中任何一个,尽管最大的地区最好。什么是最简单的Python库,可以让我这样做

举个例子:给定“伊斯坦布尔”,我想要的是:


{伊斯坦布尔,伊斯坦布尔省,土耳其,欧洲}

你真的不需要任何图书馆。您需要的是地理位置列表。如果您没有可以使用的在线地理定位服务,那么可以通过http(以及urllib)访问这些服务。您可能需要一个库来解释响应,例如,可以是XML。

我想这个接口可能很有用

多亏了Kimvais和Lennart Regebro,我想出了一个非常简单的方法来做我想做的事情,我想在这里为其他有同样问题的人发布基本步骤

  • 安装geopy()
  • 使用以下命令:

    from geopy import geocoders
    
    gn = geocoders.Google()
    place, (lat, lng) = gn.geocode("istanbul")
    print place
    
  • 这张照片上印着:
    伊斯坦布尔/土耳其伊斯坦布尔省
    ,这真是太棒了,也正是我想要的(没有大陆部分,但我只需列出一系列国家/大陆组合就可以轻松做到这一点)(是的,我知道土耳其在两个不同的大陆上。我很高兴把它放在一个大陆上,因为它对我来说并不重要)


    无论如何,希望这能帮助有同样问题的人。

    你能举一个例子吗?@Eli:Google maps有一个:,Kimvais提到的Geonames.org可以返回你要找的数据类型。@Lennart:Google Geocodeding只能从Google maps中使用,或者你违反了他们的TOS。openstreetmap是一个很好的选择在这方面,解析结果纯粹是一件痛苦的事。@Lennart:from:
    注意:地理编码API只能与谷歌地图一起使用;禁止对结果进行地理编码而不在地图上显示。有关允许使用的完整详细信息,请参阅地图API服务条款许可证限制。
    其他服务条款我想你举了一个很好的例子,说明了与这种简单分类有关的问题。你知道博斯普鲁斯海峡将伊斯坦布尔省分为两部分:欧洲和亚洲;-)你是如何将土耳其映射到一个大陆的?@MattO'Brien正如我所说的——得到了一个国家->大陆的列表,并将其编入词典,然后对其进行查询。