pythoncountry-codesiso-3166

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


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?


Solution

  • 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']