How to convert country names to ISO 3166-1 alpha-2 values, using python

MHS picture MHS · Apr 27, 2013 · Viewed 42.4k times · Source

I have a list of countries like:

countries=['American Samoa', 'Canada', 'France'...]

I want to convert them like this:

countries=['AS', 'CA', 'FR'...]

Is there any module or any way to convert them?

Answer

alecxe picture alecxe · Apr 27, 2013

There is a module called pycountry.

Here's an example code:

import pycountry

input_countries = ['American Samoa', 'Canada', 'France']

countries = {}
for country in pycountry.countries:
    countries[country.name] = country.alpha_2

codes = [countries.get(country, 'Unknown code') for country in input_countries]

print(codes)  # prints ['AS', 'CA', 'FR']