有没有办法从pycountry库访问状态名称?

时间:2019-02-04 09:47:35

标签: python country-codes

假设我想使用以下方式将州名转换为三个字母的国家/地区代码 object库,有没有办法实现?

例如(Beroun-> CZE,Faryab-> AFG)

2 个答案:

答案 0 :(得分:1)

您可以通过以下方法实现此目标:

alpha2 = pycountry.subdivisions.lookup("Beroun").country_code # "CZ"
# If you're looking for alpha_3:
pycountry.countries.get(alpha_2=alpha2).alpha_3 # "CZE"

但是,您必须注意位置不明确的地方,例如美国“蒙大拿州”

pycountry.subdivisions.lookup("Montana").country_code # BG

答案 1 :(得分:0)

您可以使用geopy获取完整的地址,即长/纬/城市/国家/地区名称:

from geopy import geocoders

Google-API-KEY = "xxx-xxxx-xxxxxxxxx-xxxxx"
gn = geocoders.GoogleV3(Google-API-KEY)
place, (lat, lng) = gn.geocode("Beroun")
print(place)

输出:

266 01 Beroun, Czechia

一旦有了国家名称,就可以使用pycountry来获得其缩写:

import pycountry
user_input = 'Czechia'
mapping = {country.name: country.alpha_2 for country in pycountry.countries}
print(mapping.get(user_input))

输出:

CZ

现在您知道,对于一个州来说,它是国家(国家)及其缩写。如果您想将键值配对为state-country

,请根据州及其国家/地区创建词典

可能类似于:

state_country = {'Beroun': 'CZ'}
print(state_country)

输出:

{'Beroun': 'CZ'}