如何使用Python根据城市确定地区、国家和洲?

4 投票
3 回答
14130 浏览
提问于 2025-04-16 10:54

我有一份城市和州/地区组合的列表(有些城市没有对应的州/地区),我想用这些信息来填补国家、洲(以及缺失的州/地区)信息。如果有多个地区适合,我都可以接受,但最好是最大的那个。请问,Python中哪个库最简单,可以让我做到这一点?

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

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

3 个回答

1

其实你根本不需要任何库来实现这个功能。你需要的只是一个地理位置的列表。如果你没有这个列表,可以在网上找到一些地理定位服务,它们可以帮你完成这些工作,你可以通过http(也就是urllib)来访问这些服务。你可能需要一个库来解析这些服务的响应,比如说它可能是XML格式的。

1

我觉得geopy这个工具和geonames网站的连接可能会很有用。

5

感谢KimvaisLennart Regebro,我找到了一个相对简单的方法来实现我想要的功能,所以我想把基本步骤分享给有同样问题的朋友们。

  1. 首先,安装geopy这个库(可以在这里找到)。

  2. 然后,使用下面的代码:

     from geopy import geocoders
    
     gn = geocoders.Google()
     place, (lat, lng) = gn.geocode("istanbul")
     print place
    

这段代码会输出:Istanbul/Istanbul Province, Turkey,这太棒了,正是我想要的(虽然没有显示大陆的部分,但我可以自己用国家和大陆的组合列表来处理这个问题,毕竟我知道土耳其在两个大陆上。我只需要把它放在一个地方就可以了,因为对我来说这并不是特别重要)。

撰写回答