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 Statistics site 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
Note, due to file encoding issues the script should only be run using Ruby 1.9 or above.
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