有没有办法用geocode获取国家代码?

问题描述 投票:0回答:1

我在文档中看到 pgeocde (https:/pypi.orgprojectpgeocode),你首先要通过在 country code 来获取国家信息。然而,我找不到任何关于通过传递参数来获取国家信息的方法,例如 country name 或国家 zip code. 我想知道这是否可能?

从文档中可以看出。

>>> import pgeocode

>>> nomi = pgeocode.Nominatim('fr')
>>> nomi.query_postal_code("75013")
postal_code               75013
country code                 FR
place_name             Paris 13
state_name        Île-de-France
state_code                   11
county_name               Paris
county_code                  75
community_name            Paris
community_code              751
latitude                48.8322
longitude                2.3561
accuracy                      5

所以,不通过 fr (这是一个 country code)作为参数,是否有办法将 country namezip code 为了获得国家信息?

python geolocation zipcode country-codes
1个回答
1
投票

这个库似乎没有任何功能可以从邮政编码开始并推导出国家代码。然而,你可以写一个函数来实现这个功能,通过循环所有支持的国家,看看哪些国家有一个邮政编码。postal_code 匹配的国家。要循环所有可能的国家,你可以引用 pgeocode.COUNTRIES_VALID 并为每个响应做一个字典之类的东西。

import pgeocode
dfs = {}
for i in pgeocode.COUNTRIES_VALID:
   nomi = pgeocode.Nominatim(i)
   # this code will always return a dataframe
   # if the postal_code has no match, the df values will all be NaN 
   df = nomi.query_postal_code("75013")
   dfs[i] = df

请注意,这种方法并不节省内存. 如果你看一下pgocode的源代码 (https:/github.comsymeriopgeocodeblobmasterpgeocode.py),你会发现你可能会通过索引底层数据和查询该索引来获得很多效率。),你会发现,通过对底层数据进行索引并查询该索引,你可能会获得很多效率。

© www.soinside.com 2019 - 2024. All rights reserved.