Estou procurando uma lista completa de países com seus códigos de país .
Como nesta página (precisa ser completa e válida):
Estou procurando uma lista completa de países com seus códigos de país .
Como nesta página (precisa ser completa e válida):
Respostas:
O site oficial da ISO 3166-1 é provavelmente a fonte mais atualizada para os códigos de duas letras. Infelizmente, eles não têm o alfa-3 online, citando o site :
Onde posso encontrar o código do país ISO 3166-1 alfa-3 para download gratuito no site da ISO 3166 / MA?
Lugar algum. O código alfa-3 não é disponibilizado gratuitamente. Você pode comprar o International Standard ISO 3166-1 na nossa loja ISO. Ele contém o código de três letras.
Um pouco estranho na era da internet, mas, felizmente, há um artigo da Wikipedia com a lista completa e um documento oficial da ONU que cobre o assunto, com os códigos dos países .
Atualizar:
Há uma lista no site da CIA com FIPS 10, ISO 3166 Alpha2, ISO 3166 Alpha3, STANAG e TLD da Internet (por exemplo, .il ou .uk).
Resumo do link :
Observe que essas listas contêm entidades que não são países, como a Antártica.
Se você deseja atualizar periodicamente sua lista, você pode raspar uma das fontes e analisar seus resultados em um formato útil. Fiz isso aqui para converter a lista de códigos de país da Wikipedia em um CSV :
import csv
import urllib2
from BeautifulSoup import BeautifulSoup
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
url = 'http://en.wikipedia.org/wiki/ISO_3166-1'
page = opener.open(url)
soup = BeautifulSoup(page.read())
# "Current Codes" is second table on the page
t = soup.findAll('table', {'class' : 'wikitable sortable'})[1]
# create a new CSV for the output
iso_csv = csv.writer(open('wikipedia-iso-country-codes.csv', 'w'))
# get the header rows, write to the CSV
iso_csv.writerow([th.findAll(text=True)[0] for th in t.findAll('th')])
# Iterate over the table pulling out the country table results. Skip the first
# row as it contains the already-parsed header information.
for row in t.findAll("tr")[1:]:
tds = row.findAll('td')
raw_cols = [td.findAll(text=True) for td in tds]
cols = []
# country field contains differing numbers of elements, due to the flag --
# only take the name
cols.append(raw_cols[0][-1:][0])
# for all other columns, use the first result text
cols.extend([col[0] for col in raw_cols[1:]])
iso_csv.writerow(cols)
Você pode encontrar todos (a maioria?) Dos códigos de duas e três letras em http://download.geonames.org/export/dump/countryInfo.txt - ele também possui códigos numéricos e fips ISO e outras informações sobre o país.
Em muitas distribuições Linux, uma lista de códigos iso de país é instalada por padrão em:
/usr/share/xml/iso-codes/iso_3166.xml
No Fedora / CentOS / RHEL / Debian , o pacote que contém esse arquivo é chamado iso-codes
( página inicial do projeto ).
O arquivo XML contém o mapeamento em uma estrutura hierárquica:
<iso_3166_entries>
<iso_3166_entry
alpha_2_code="AF"
alpha_3_code="AFG"
numeric_code="004"
name="Afghanistan"
official_name="Islamic Republic of Afghanistan" />
[..]
Ele pode ser transformado em um formato baseado em registro (por exemplo, para importação de banco de dados) via XPath e um shell one liner:
$ xmllint --noout --xpath \
'//iso_3166_entry/@*[name() = "alpha_2_code" or name()="alpha_3_code"]' \
/usr/share/xml/iso-codes/iso_3166.xml \
| sed 's/alpha_2/\nalpha_2/g' \
| awk -F'"' 'OFS="," {print $2,$4}'
Como alternativa, pode-se usar o módulo Python pycountry para ler e transformar os códigos desse pacote, por exemplo:
$ pip3 install --user pycountry
$ python3
>>> import pycountry
>>> for i in pycountry.countries:
... print('{},{}'.format(i.alpha2,i.alpha3))
...
AF,AFG
AX,ALA
AL,ALB
[..]
Gostaria de adicionar o pycountry porque você tem uma tag python e parece ser o que você queria. Dos documentos:
País ISO, subdivisão, idioma, moeda e definições de script e suas traduções
O pycountry fornece os bancos de dados ISO para os padrões:
639 idiomas
3166 países
3166-3 Países excluídos
3166-2 Subdivisões de países
4217 Moedas
15924 Scripts
O pacote inclui uma cópia dos pkg-isocodes do Debian e torna os dados acessíveis através de uma API Python.
Você pode obter uma lista completa de Alpha 2 e Alpha 3 (além de outras informações) em http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes/resource/9c3b30dd-f5f3-4bbe-a3cb -d7b2c21d66ce Existe um link para ele em http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes
Atualizei o script do @ scw, que raspa os dados da Wikipedia. Agora ele usa, em requests
vez de urllib2
, Beautiful Soup 4 e gera um JSON em vez de gravar em um arquivo CSV.
import json
import bs4
import requests
print(json.dumps(
[
{
['name', 'alpha_2', 'alpha_3', 'numeric'][no]:
td.find_all()[-1].text
for no, td in enumerate(row.find_all('td')[:-1])
}
for row in bs4.BeautifulSoup(
requests.get('http://en.wikipedia.org/wiki/ISO_3166-1').text
).find('table', {'class': 'wikitable sortable'}).find_all('tr')[1:]
],
indent=4,
ensure_ascii=False
))
Produz um JSON como:
[
{
"name": "Afghanistan",
"alpha_3": "AFG",
"alpha_2": "AF",
"numeric": "004"
},
{
"name": "Åland Islands",
"alpha_3": "ALA",
"alpha_2": "AX",
"numeric": "248"
},
...
Você pode usar este código https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - o lxml é sempre mais rápido que o BeautifulSoup.
Copiou aqui:
import scraperwiki
import lxml.html
import urllib
import datetime
import json
from unidecode import unidecode
def get_html(title):
raw_json = scraperwiki.scrape("http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + title)
html = json.loads(raw_json)['parse']['text']['*']
return html
page_title = "ISO_3166-1"
html = get_html(page_title)
doc = lxml.html.fromstring(html)
for count, tr in enumerate(doc.cssselect('tr')):
row = [(td.text_content()) for td in tr.cssselect('td')]
if len(row)==5:
for ahref in tr.cssselect('a'):
detailink = ahref.attrib['href']
if detailink.find(':',0,len(detailink)) != -1:
detailink = detailink[6:]
print detailink
now = datetime.datetime.now()
data ={"tmsp_scraped":str(now), "eng_short_name":row[0], "alpha_2_code":row[1], "alpha_3_code":row[2], "numeric_code":row[3], "iso_31662_code":detailink}
scraperwiki.sqlite.save(unique_keys=["eng_short_name"], data=data, table_name="s_iso31661")
html = get_html(detailink)
doc = lxml.html.fromstring(html)
for count, tr in enumerate(doc.cssselect('tr')):
row = [td.text_content() for td in tr.cssselect('td')]
row2 = [td.text_content() for td in tr.cssselect('td')]
if len(row)>0:
if row[0][:2] == detailink[11:]:
now = datetime.datetime.now()
data = {"tmsp_scraped":str(now), "iso_31662_code":detailink, "region_code":row[0], "region_desc":row[1], "region_desc_utf8":row2[1]}
scraperwiki.sqlite.save(unique_keys=["iso_31662_code","region_code"], data=data, table_name="s_iso31662_region")
Mais uma boa biblioteca: https://github.com/neuront/python-iso3166
Também existe um ótimo conjunto de dados na Open Knowledge Foundation, que inclui ISO 3166 alfa3, alfa2, numérico e muitos outros.
Encontrei um banco de dados muito bom no repositório do github - https://github.com/stefangabos/world_countries
No momento de escrever repositório consistem json
, csv
, sql
arquivos para 22 línguas com códigos de países diferentes: ISO 3166-1 alpha-3, ISO 3166-1 alfa-2 e os nomes completos.
O banco de dados parece ser atualizado regularmente
Tente esta lista:
https://gist.github.com/eparreno/205900
Possui códigos ISO de 2 letras, 3 letras e numéricos com nomes abreviados de países.
uma matriz php com códigos ISO de país com 3 letras do artigo da Wikipedia
Copiei e colei a lista da Wikipedia e criei a matriz. Talvez esse código possa ajudar alguém a economizar tempo, que deseja criar uma variedade de códigos de países. Eu não estou familiarizado com python, mas a criação de array deve ser semelhante ao php.
$Countries=array();
array_push($Countries,"ABW");
array_push($Countries,"AFG");
array_push($Countries,"AGO");
array_push($Countries,"AIA");
array_push($Countries,"ALA");
array_push($Countries,"ALB");
array_push($Countries,"AND");
array_push($Countries,"ARE");
array_push($Countries,"ARG");
array_push($Countries,"ARM");
array_push($Countries,"ASM");
array_push($Countries,"ATA");
array_push($Countries,"ATF");
array_push($Countries,"ATG");
array_push($Countries,"AUS");
array_push($Countries,"AUT");
array_push($Countries,"AZE");
array_push($Countries,"BDI");
array_push($Countries,"BEL");
array_push($Countries,"BEN");
array_push($Countries,"BES");
array_push($Countries,"BFA");
array_push($Countries,"BGD");
array_push($Countries,"BGR");
array_push($Countries,"BHR");
array_push($Countries,"BHS");
array_push($Countries,"BIH");
array_push($Countries,"BLM");
array_push($Countries,"BLR");
array_push($Countries,"BLZ");
array_push($Countries,"BMU");
array_push($Countries,"BOL");
array_push($Countries,"BRA");
array_push($Countries,"BRB");
array_push($Countries,"BRN");
array_push($Countries,"BTN");
array_push($Countries,"BVT");
array_push($Countries,"BWA");
array_push($Countries,"CAF");
array_push($Countries,"CAN");
array_push($Countries,"CCK");
array_push($Countries,"CHE");
array_push($Countries,"CHL");
array_push($Countries,"CHN");
array_push($Countries,"CIV");
array_push($Countries,"CMR");
array_push($Countries,"COD");
array_push($Countries,"COG");
array_push($Countries,"COK");
array_push($Countries,"COL");
array_push($Countries,"COM");
array_push($Countries,"CPV");
array_push($Countries,"CRI");
array_push($Countries,"CUB");
array_push($Countries,"CUW");
array_push($Countries,"CXR");
array_push($Countries,"CYM");
array_push($Countries,"CYP");
array_push($Countries,"CZE");
array_push($Countries,"DEU");
array_push($Countries,"DJI");
array_push($Countries,"DMA");
array_push($Countries,"DNK");
array_push($Countries,"DOM");
array_push($Countries,"DZA");
array_push($Countries,"ECU");
array_push($Countries,"EGY");
array_push($Countries,"ERI");
array_push($Countries,"ESH");
array_push($Countries,"ESP");
array_push($Countries,"EST");
array_push($Countries,"ETH");
array_push($Countries,"FIN");
array_push($Countries,"FJI");
array_push($Countries,"FLK");
array_push($Countries,"FRA");
array_push($Countries,"FRO");
array_push($Countries,"FSM");
array_push($Countries,"GAB");
array_push($Countries,"GBR");
array_push($Countries,"GEO");
array_push($Countries,"GGY");
array_push($Countries,"GHA");
array_push($Countries,"GIB");
array_push($Countries,"GIN");
array_push($Countries,"GLP");
array_push($Countries,"GMB");
array_push($Countries,"GNB");
array_push($Countries,"GNQ");
array_push($Countries,"GRC");
array_push($Countries,"GRD");
array_push($Countries,"GRL");
array_push($Countries,"GTM");
array_push($Countries,"GUF");
array_push($Countries,"GUM");
array_push($Countries,"GUY");
array_push($Countries,"HKG");
array_push($Countries,"HMD");
array_push($Countries,"HND");
array_push($Countries,"HRV");
array_push($Countries,"HTI");
array_push($Countries,"HUN");
array_push($Countries,"IDN");
array_push($Countries,"IMN");
array_push($Countries,"IND");
array_push($Countries,"IOT");
array_push($Countries,"IRL");
array_push($Countries,"IRN");
array_push($Countries,"IRQ");
array_push($Countries,"ISL");
array_push($Countries,"ISR");
array_push($Countries,"ITA");
array_push($Countries,"JAM");
array_push($Countries,"JEY");
array_push($Countries,"JOR");
array_push($Countries,"JPN");
array_push($Countries,"KAZ");
array_push($Countries,"KEN");
array_push($Countries,"KGZ");
array_push($Countries,"KHM");
array_push($Countries,"KIR");
array_push($Countries,"KNA");
array_push($Countries,"KOR");
array_push($Countries,"KWT");
array_push($Countries,"LAO");
array_push($Countries,"LBN");
array_push($Countries,"LBR");
array_push($Countries,"LBY");
array_push($Countries,"LCA");
array_push($Countries,"LIE");
array_push($Countries,"LKA");
array_push($Countries,"LSO");
array_push($Countries,"LTU");
array_push($Countries,"LUX");
array_push($Countries,"LVA");
array_push($Countries,"MAC");
array_push($Countries,"MAF");
array_push($Countries,"MAR");
array_push($Countries,"MCO");
array_push($Countries,"MDA");
array_push($Countries,"MDG");
array_push($Countries,"MDV");
array_push($Countries,"MEX");
array_push($Countries,"MHL");
array_push($Countries,"MKD");
array_push($Countries,"MLI");
array_push($Countries,"MLT");
array_push($Countries,"MMR");
array_push($Countries,"MNE");
array_push($Countries,"MNG");
array_push($Countries,"MNP");
array_push($Countries,"MOZ");
array_push($Countries,"MRT");
array_push($Countries,"MSR");
array_push($Countries,"MTQ");
array_push($Countries,"MUS");
array_push($Countries,"MWI");
array_push($Countries,"MYS");
array_push($Countries,"MYT");
array_push($Countries,"NAM");
array_push($Countries,"NCL");
array_push($Countries,"NER");
array_push($Countries,"NFK");
array_push($Countries,"NGA");
array_push($Countries,"NIC");
array_push($Countries,"NIU");
array_push($Countries,"NLD");
array_push($Countries,"NOR");
array_push($Countries,"NPL");
array_push($Countries,"NRU");
array_push($Countries,"NZL");
array_push($Countries,"OMN");
array_push($Countries,"PAK");
array_push($Countries,"PAN");
array_push($Countries,"PCN");
array_push($Countries,"PER");
array_push($Countries,"PHL");
array_push($Countries,"PLW");
array_push($Countries,"PNG");
array_push($Countries,"POL");
array_push($Countries,"PRI");
array_push($Countries,"PRK");
array_push($Countries,"PRT");
array_push($Countries,"PRY");
array_push($Countries,"PSE");
array_push($Countries,"PYF");
array_push($Countries,"QAT");
array_push($Countries,"REU");
array_push($Countries,"ROU");
array_push($Countries,"RUS");
array_push($Countries,"RWA");
array_push($Countries,"SAU");
array_push($Countries,"SDN");
array_push($Countries,"SEN");
array_push($Countries,"SGP");
array_push($Countries,"SGS");
array_push($Countries,"SHN");
array_push($Countries,"SJM");
array_push($Countries,"SLB");
array_push($Countries,"SLE");
array_push($Countries,"SLV");
array_push($Countries,"SMR");
array_push($Countries,"SOM");
array_push($Countries,"SPM");
array_push($Countries,"SRB");
array_push($Countries,"SSD");
array_push($Countries,"STP");
array_push($Countries,"SUR");
array_push($Countries,"SVK");
array_push($Countries,"SVN");
array_push($Countries,"SWE");
array_push($Countries,"SWZ");
array_push($Countries,"SXM");
array_push($Countries,"SYC");
array_push($Countries,"SYR");
array_push($Countries,"TCA");
array_push($Countries,"TCD");
array_push($Countries,"TGO");
array_push($Countries,"THA");
array_push($Countries,"TJK");
array_push($Countries,"TKL");
array_push($Countries,"TKM");
array_push($Countries,"TLS");
array_push($Countries,"TON");
array_push($Countries,"TTO");
array_push($Countries,"TUN");
array_push($Countries,"TUR");
array_push($Countries,"TUV");
array_push($Countries,"TWN");
array_push($Countries,"TZA");
array_push($Countries,"UGA");
array_push($Countries,"UKR");
array_push($Countries,"UMI");
array_push($Countries,"URY");
array_push($Countries,"USA");
array_push($Countries,"UZB");
array_push($Countries,"VAT");
array_push($Countries,"VCT");
array_push($Countries,"VEN");
array_push($Countries,"VGB");
array_push($Countries,"VIR");
array_push($Countries,"VNM");
array_push($Countries,"VUT");
array_push($Countries,"WLF");
array_push($Countries,"WSM");
array_push($Countries,"YEM");
array_push($Countries,"ZAF");
array_push($Countries,"ZMB");
array_push($Countries,"ZWE");
Se você não deseja codificar a lista de países (que eu não recomendo, porque muda muito), use este URL no qual você obtém o código de duas letras e o nome do país no formato JSON : annsystem.com/api / getCountry
Também inclui países membros da ONU e não membros da ONU .
Para detalhes e parâmetros, consulte aqui: flossk.org/en/blog/country-list-good-all
Caso qualquer usuário R encontre esse tópico, aqui está a solução R:
O countrycode
pacote contém uma lista completa de códigos de países em vários formatos diferentes. Na documentação do pacote:
Suporta os seguintes esquemas de codificação: caracteres Correlates of War, CoW-numérico, ISO3, ISO3, ISO2, IMF numérico, Comitê Olímpico Internacional, Comitê Olímpico Internacional, FIPS 10-4, FAO numérico, Nações Unidas numérico, caráter do Banco Mundial, nomes curtos oficiais do país (ISO), continente, região.
O pacote também converterá entre códigos diferentes e pode identificar países por nomes padrão ou não padrão usando expressões regulares.
library(countrycode)
# data frame of country names and codes
head(countrycode_data)
# convert from CoW to ISO3
countrycode(c("ALG","ALB","UKG","CAN","USA"), origin = "cowc", destination = "iso3c")
# ISO2 code from non-standard name
countrycode("Britain", "country.name", "iso2c")
Basta usar as ferramentas do Microsoft Excel Power BI para extrair os dados da Wikipedia. Demora menos de 30 segundos para criar um raspar da página do Excel e salvá-lo no formato que você quiser.
Este é um tópico antigo, mas vale a pena atualizar para isso.
Pesquisas avançadas / reversas nos códigos de país Alpha2 e Alpha3, retornam um objeto massivo por país que inclui códigos telefônicos, moeda, informações iso, informações de IOC, códigos postais e muito mais: https://github.com/rolinger/iso-country -data-validation / settings
Para recuperar informações de países (Nome, caractere ISO 2, caractere ISO 3, ...), você pode usar este pacote NuGet em angrymonkeycloud.com/geography .
É um cliente .Net gratuito que recupera informações de uma API RESTful.