Je recherche une liste complète des pays avec leurs codes de pays .
Comme sur cette page (besoin complet et valide):
Je recherche une liste complète des pays avec leurs codes de pays .
Comme sur cette page (besoin complet et valide):
Réponses:
Le site officiel ISO 3166-1 est probablement la source la plus à jour pour les codes à deux lettres. Malheureusement, ils n'ont pas l'alpha-3 en ligne, citant leur site :
Où puis-je trouver le code de pays ISO 3166-1 alpha-3 en téléchargement gratuit sur le site Web ISO 3166 / MA?
Nulle part. Le code alpha-3 n'est pas mis à disposition gratuitement. Vous pouvez acheter la norme internationale ISO 3166-1 dans notre magasin ISO. Il contient le code à trois lettres.
Un peu étrange à l'ère d'Internet, mais heureusement, il y a un article Wikipédia avec la liste complète et un document officiel de l'ONU qui couvre le sujet, avec des codes de pays .
Mise à jour:
Il existe une liste sur le site de la CIA avec FIPS 10, ISO 3166 Alpha2, ISO 3166 Alpha3, STANAG et Internet TLD (par exemple, .il ou .uk).
Résumé du lien :
Notez que cette liste contient des entités non nationales comme Antartica.
Si vous souhaitez mettre à jour périodiquement votre liste, vous pouvez gratter l'une des sources et analyser ses résultats dans un format utile. Je l'ai fait ici pour convertir la liste des codes de pays Wikipedia en 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)
Vous pouvez trouver tous (la plupart?) Des codes à deux et trois lettres dans http://download.geonames.org/export/dump/countryInfo.txt - il a également des codes ISO et fips numériques et d'autres informations sur le pays.
Sur de nombreuses distributions Linux, une liste des codes de pays iso est installée par défaut sous:
/usr/share/xml/iso-codes/iso_3166.xml
Sous Fedora / CentOS / RHEL / Debian , le paquet qui contient ce fichier est appelé iso-codes
( page d'accueil du projet ).
Le fichier XML contient le mappage dans une structure hiérarchique:
<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" />
[..]
Il peut être transformé en un format basé sur des enregistrements (par exemple pour l'importation de bases de données) via XPath et un 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}'
Alternativement, on peut utiliser le module Python pycountry pour lire et transformer les codes de ce paquet, par exemple:
$ pip3 install --user pycountry
$ python3
>>> import pycountry
>>> for i in pycountry.countries:
... print('{},{}'.format(i.alpha2,i.alpha3))
...
AF,AFG
AX,ALA
AL,ALB
[..]
Je voudrais ajouter pycountry parce que vous avez une balise python et cela semble être ce que vous vouliez. De la documentation:
ISO pays, subdivision, langue, devise et définitions de script et leurs traductions
pycountry fournit les bases de données ISO pour les normes:
639 Langues
3166 pays
3166-3 Pays supprimés
3166-2 Subdivisions de pays
4217 devises
15924 Scripts
Le paquet comprend une copie des pkg-isocodes de Debian et rend les données accessibles via une API Python.
Vous pouvez obtenir une liste complète Alpha 2 et Alpha 3 (ainsi que d'autres informations) sur http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes/resource/9c3b30dd-f5f3-4bbe-a3cb -d7b2c21d66ce Il existe un lien vers celui-ci depuis http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes
J'ai mis à jour le script de @ scw qui gratte les données de Wikipedia. Il utilise désormais à la requests
place de urllib2
Beautiful Soup 4 et génère un JSON au lieu d'écrire dans un fichier 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
))
Génère un JSON comme:
[
{
"name": "Afghanistan",
"alpha_3": "AFG",
"alpha_2": "AF",
"numeric": "004"
},
{
"name": "Åland Islands",
"alpha_3": "ALA",
"alpha_2": "AX",
"numeric": "248"
},
...
Vous pouvez utiliser ce code https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - lxml est toujours plus rapide que BeautifulSoup.
Copié ici:
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")
Encore une belle bibliothèque: https://github.com/neuront/python-iso3166
Il existe également un grand ensemble de données à Open Knowledge Foundation qui comprend ISO 3166 alpha3, alpha2, numérique ainsi que de nombreux autres.
J'ai trouvé une très belle base de données sur le dépôt github - https://github.com/stefangabos/world_countries
Au moment de l' écriture dépôt se composent de json
, csv
, les sql
fichiers de 22 langues avec des codes de pays différents: alpha-3 ISO 3166-1, alpha-2 ISO 3166-1 et les noms complets.
La base de données semble être mise à jour assez régulièrement
Essayez cette liste:
https://gist.github.com/eparreno/205900
Il a des codes ISO à 2 lettres, à 3 lettres et numériques avec des noms abrégés de pays.
un tableau php avec les codes pays ISO à 3 lettres d'un article de Wikipedia
J'ai copié et collé la liste de Wikipedia et créé le tableau. Peut-être que ce code peut aider quelqu'un à gagner du temps, qui veut créer un tableau de codes de pays. Je ne suis pas familier avec python, mais la création de tableaux devrait être similaire à 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");
Si vous ne voulez pas coder en dur la liste des pays (ce que je ne recommande pas, car cela change beaucoup), utilisez cette URL à partir de laquelle vous obtenez le code à 2 lettres et le nom du pays au format JSON : annsystem.com/api / getCountry
Il comprend également les pays des Nations Unies et non membres de l' ONU .
Pour les détails et les paramètres, voir ici: flossk.org/en/blog/country-list-good-all
Au cas où des utilisateurs R tomberaient sur ce fil, voici la solution R:
Le countrycode
paquet contient une liste complète des codes de pays dans de nombreux formats différents. De la documentation du package:
Prend en charge les schémas de codage suivants: caractère de corrélation de guerre, numérique CoW, caractère ISO3, numérique ISO3, caractère ISO2, FMI numérique, Comité international olympique, FIPS 10-4, FAO numérique, Nations Unies numérique, caractère Banque mondiale, noms officiels officiels de pays anglais (ISO), continent, région.
Le package convertira également entre différents codes et peut identifier les pays par des noms standard ou non standard en utilisant des expressions régulières.
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")
Utilisez simplement les outils Microsoft Excel Power BI pour extraire les données de Wikipedia. Il faut moins de 30 secondes pour créer un excellent grattage de la page, puis l'enregistrer dans le format de votre choix.
C'est un vieux fil, mais ça vaut la peine d'être mis à jour.
Les recherches en avant / en arrière sur les codes de pays Alpha2 et Alpha3, retournent un objet massif par pays qui comprend les codes de téléphone, la devise, les informations iso, les informations IOC, les codes postaux, etc .: https://github.com/rolinger/iso-country -données-validation / paramètres
Pour récupérer des informations sur les pays (nom, caractère ISO 2, caractère ISO 3, ...), vous pouvez utiliser ce package NuGet sur angrymonkeycloud.com/geography .
Il s'agit d'un client .Net gratuit qui récupère les informations d'une API RESTful.