La distribution Perl Locale :: Codes est très complète et activement maintenue.
Dave Baird
Si ce sont des données ouvertes que vous recherchez, je pense que l'endroit à demander est l' Open Data Stack Exchange.
PolyGeo
Réponses:
31
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.
Cette réponse est maintenant 100% utile car le premier lien, le site officiel, fournit désormais également le code alpha-3 gratuitement dans un tableau copypastable bien formaté.
Dirk van Bergen du
@DirkvanBergen C'est une belle décision, mais leur tableau est loin d'être bien formaté. Pagination de 10 pages, pas de lien CSV.
Adam Matan
4
Utilisez le lien à gauche pour afficher uniquement les codes attribués, puis définissez la page pour afficher 300 et vous avez tout, copiez-collez pour exceller et (ab) utilisez-le de la manière que vous souhaitez.
Dirk van Bergen
14
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)
J'aime cette approche. J'ai mis à jour ce script pour utiliser des bibliothèques plus récentes et produire du JSON au lieu d'écrire dans un fichier CSV: gis.stackexchange.com/a/151571/54020
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:
J'ai mis à jour le script de @ scw qui gratte les données de Wikipedia. Il utilise désormais à la requestsplace de urllib2Beautiful 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
))
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")
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.
Au moment de l' écriture dépôt se composent de json, csv, les sqlfichiers 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
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.
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 .
Au cas où des utilisateurs R tomberaient sur ce fil, voici la solution R:
Le countrycodepaquet 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.
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 :
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.
la source
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 :
la source
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.
la source
Sur de nombreuses distributions Linux, une liste des codes de pays iso est installée par défaut sous:
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:
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:
Alternativement, on peut utiliser le module Python pycountry pour lire et transformer les codes de ce paquet, par exemple:
la source
Je voudrais ajouter pycountry parce que vous avez une balise python et cela semble être ce que vous vouliez. De la documentation:
la source
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
la source
J'ai mis à jour le script de @ scw qui gratte les données de Wikipedia. Il utilise désormais à la
requests
place deurllib2
Beautiful Soup 4 et génère un JSON au lieu d'écrire dans un fichier CSV.Génère un JSON comme:
la source
Vous pouvez utiliser ce code https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - lxml est toujours plus rapide que BeautifulSoup.
Copié ici:
Encore une belle bibliothèque: https://github.com/neuront/python-iso3166
la source
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.
http://data.okfn.org/data/core/country-codes#data
https://github.com/datasets/country-codes
la source
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
, lessql
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
la source
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.
la source
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.
la source
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
la source
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: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.
la source
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.
la source
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
la source
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.
la source