我在 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/