ISO 3166-1 country lists merged with their UN Geoscheme regional codes in ready-to-use JSON, XML, CSV data sets
These lists are the result of merging data from two sources, the Wikipedia ISO 3166-1 article for alpha and numeric country codes, and the UN M49 Standard country or area codes for statistical use data for countries’ regional, and sub-regional codes. In addition to countries, it includes dependent territories.
The International Organization for Standardization (ISO) site provides partial data (capitalised and sometimes stripped of non-latin ornamentation), but sells the complete data set as a Microsoft Access 2003 database. Other sites give you the numeric and character codes, but there appeared to be no sites that included the associated UN-maintained regional codes in their data sets. I scraped data from the above two websites that is all publicly available already to produce some ready-to-use complete data sets that will hopefully save someone some time who had similar needs.
The data is available in
3 versions exist for each format
all.format
- Everything I can find, including regional and sub-regional codesslim-2.format
- English name, numeric country code and alpha-2 code (e.g., NZ)slim-3.format
- English name, numeric country code and alpha-3 code (e.g., NZL)Take a peek inside the all
, slim-2
and slim-3
directories for the full lists of JSON, XML and CSV.
Using JSON as an example:
[
{
"name":"Nigeria",
"alpha-2":"NG",
"alpha-3":"NGA",
"country-code":"566",
"iso_3166-2":"ISO 3166-2:NG",
"region":"Africa",
"sub-region":"Sub-Saharan Africa",
"intermediate-region":"Western Africa",
"region-code":"002",
"sub-region-code":"202",
"intermediate-region-code":"011"
},
// ...
]
[
{
"name":"New Zealand",
"alpha-2":"NZ",
"country-code":"554"
},
// ...
]
[
{
"name":"New Zealand",
"alpha-3":"NZL",
"country-code":"554"
},
// ...
]
scrubber.rb
is a dirty Ruby script I used to generate these files. You can run it yourself if you wish to re-generate the files fresh from the sources.
To install the gems in the Gemfile:
bundle
To run:
bundle exec ruby scrubber.rb
tag 10.0
tag 9.0
tag 8.0
tag 7.0
tag 6.0
tag 5.0
tag 4.0
tag 3.0
tag 2.0
tag 1.0