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
- JSON
- XML
- CSV
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":"New Zealand",
"alpha-2":"NZ",
"alpha-3":"NZL",
"country-code":"554",
"sub-region-code":"053",
"region-code":"009",
"iso_3166-2":"ISO 3166-2:NZ"
},
// ...
]
[
{
"name":"New Zealand",
"alpha-2":"NZ",
"country-code":"554"
},
// ...
]
[
{
"name":"New Zealand",
"alpha-3":"NZL",
"country-code":"554"
},
// ...
]
- Please check the data independently for accuracy before using it in any system and for any purpose
- Although I've tried to ensure the data is as accurate as possible, the data is not authoritative, and so should not be considered accurate
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 install
If you want to use a tested setup rename one of the Gemfile.lock_* files to Gemfile.lock (just choose the best one for your Ruby version) before running bundle install
To run:
ruby scrubber.rb
Note, due to file encoding issues the script should only be run using Ruby 1.9 or above.
- UN Statistical data retrieved 20 April 2014, from a document last revised 31 October 2013
- Wikipedia data retrieved 20 April 2014, from a document last revised 14 April 2014
- 20 April 2014 -
tag 3.0
- 13 June 2012 -
tag 2.0
- 18 May 2011 -
tag 1.0