python - 有没有办法使用 pgeocode 获取国家代码?

标签 python geolocation zipcode country-codes

我在 pgeocde ( https://pypi.org/project/pgeocode/ ) 的文档中看到,您首先必须传入国家/地区代码才能获取国家/地区信息。但是,我找不到任何有关通过传递国家/地区名称或国家/地区邮政编码等参数来获取国家/地区信息的信息。我想知道这是否可能?

来自文档:

>>> 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(这是国家/地区代码)作为参数> 或邮政编码以获得国家/地区信息?

最佳答案

该库似乎没有任何以邮政编码开头并派生国家/地区的功能。不过,您可以编写一个函数来执行此操作,方法是循环所有受支持的国家/地区,并查看哪些国家/地区的 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

请注意,这种方法的内存效率不高。如果您查看 pgeocode ( https://github.com/symerio/pgeocode/blob/master/pgeocode.py ) 的源代码,您会发现通过索引底层数据并查询该索引可能会提高效率。

关于python - 有没有办法使用 pgeocode 获取国家代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61892406/

相关文章:

android - Android 设备的地方自动完成

r - 将邮政编码映射到 R 中各自的城市和州?

python - 使用机器人框架条件语句和关键字时出现语法错误

node.js - Mongoose $maxDistance 不精确

python - GBase Snippets Feed,如何提取 URL?

android - Google maps Android API获取wifi位置

ios - objective-c 中当前位置的邮政编码?

google-maps - 从谷歌地图中的罗马尼亚邮政编码获取坐标

python - 带标签的 CSV 文件

python - 为什么每个应用程序都有一个 model.py,而不是整个项目只有一个 model.py?