【问题标题】:Is there a way to get country code with pgeocode?有没有办法用 pgeocode 获取国家代码?
【发布时间】:2020-05-19 13:35:09
【问题描述】:

我在pgeocde (https://pypi.org/project/pgeocode/) 的文档中看到,您首先必须传入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】:

    这个库似乎没有任何以邮政编码开头并派生国家的功能。但是,您可以编写一个函数来执行此操作,方法是循环所有受支持的国家/地区并查看哪些国家/地区的 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) 的源代码,您会发现通过索引基础数据和查询该索引可能会提高效率。

    【讨论】:

    • 非常感谢您的快速回复。我会试试看!
    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多