Где я могу найти код страны ISO 3166-1 alpha-3 для бесплатной загрузки на веб-сайте ISO 3166 / MA?
Нигде. Код альфа-3 не предоставляется бесплатно. Вы можете купить международный стандарт ISO 3166-1 в нашем магазине ISO. Он содержит трехбуквенный код.
Этот ответ теперь на 100% полезен, так как первая ссылка, официальный сайт, теперь также бесплатно предоставляет код альфа-3 в красиво отформатированной копируемой таблице.
Дирк ван Берген
@DirkvanBergen Это хороший ход, но их таблица далеко не отформатирована. 10-страничная нумерация страниц, без ссылки CSV.
Адам Матан
4
Используйте ссылку слева, чтобы показать только назначенные коды, а затем установите страницу, чтобы показать 300, и у вас есть все, скопируйте вставить, чтобы превзойти и (ab) использовать его любым способом, который вы пожелаете.
Дирк ван Берген
14
Если вы хотите периодически обновлять свой список, вы можете очистить один из источников и проанализировать его результаты в удобном формате. Я сделал это здесь для преобразования списка кодов стран Википедии в 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)
Мне нравится этот подход. Я обновил этот скрипт, чтобы использовать более свежие библиотеки и выводить JSON вместо записи в файл CSV: gis.stackexchange.com/a/151571/54020
Я обновил скрипт @ scw, который очищает данные из Википедии. Теперь он использует requestsвместо urllib2Beautiful Soup 4 и выводит JSON вместо записи в файл 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")
На момент написания хранилища состоит из json, csv, sqlфайлов для 22 языков с различными кодами стран: ISO 3166-1 альфа-3, ISO 3166-1 альфа-2 и полных имен.
База данных, кажется, обновляется довольно регулярно
Я скопировал и вставил список из Википедии и создал массив. Возможно, этот код может помочь кому-то сэкономить время, которое хочет создать массив кодов стран. Я не знаком с Python, но создание массива должно быть похоже на php.
Если вы не хотите жестко кодировать список стран (который я не рекомендую, потому что он сильно меняется), используйте этот URL, из которого вы получите двухбуквенный код и название страны в формате JSON :
annsystem.com/api / getCountry
В случае, если кто-нибудь из пользователей R наткнется на этот поток, вот решение R:
countrycodeПакет содержит полный список кодов стран в различных форматах. Из документации пакета:
Поддерживает следующие схемы кодирования: символ «Корреляты войны», цифра CoW, цифра ISO3, цифра ISO3, цифра ISO2, цифра IMF, Международный олимпийский комитет, FIPS 10-4, цифра ФАО, цифра Организации Объединенных Наций, цифра Всемирного банка, официальные английские краткие названия стран (ISO), континент, регион.
Пакет также конвертирует между различными кодами и может идентифицировать страны по стандартным или нестандартным именам с помощью регулярных выражений.
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")
Просто используйте инструменты Microsoft Excel Power BI для извлечения данных из Википедии. Для создания превосходной страницы и ее сохранения в любом формате вам понадобится менее 30 секунд.
Перемотка вперед / назад по кодам стран Alpha2 и Alpha3, возвращает массивный объект для каждой страны, который включает в себя телефонные коды, валюту, информацию iso, информацию IOC, почтовые коды и многое другое:
https://github.com/rolinger/iso-country -data-проверки / настройки
Для получения информации о странах (имя, символ ISO 2, символ ISO 3, ...) вы можете использовать этот пакет NuGet по адресу angrymonkeycloud.com/geography .
Это бесплатный клиент .Net, который получает информацию из RESTful API.
Ответы:
Официальный сайт ISO 3166-1 , вероятно , является самым обновляемым источником для двух буквенных кодов. К сожалению, у них нет альфа-3 онлайн, цитируя их сайт :
Немного странно в эпоху интернета, но, к счастью, есть статья в Википедии с полным списком и официальным документом ООН, который охватывает эту тему, с кодами стран .
Обновить:
На сайте CIA есть список с FIPS 10, ISO 3166 Alpha2, ISO 3166 Alpha3, STANAG и TLD в Интернете (например, .il или .uk).
Сводка ссылки :
Обратите внимание, что в этом списке содержатся объекты, расположенные за пределами страны, такие как Antartica.
источник
Если вы хотите периодически обновлять свой список, вы можете очистить один из источников и проанализировать его результаты в удобном формате. Я сделал это здесь для преобразования списка кодов стран Википедии в CSV :
источник
Вы можете найти все (большинство?) Двух- и трехбуквенных кодов в http://download.geonames.org/export/dump/countryInfo.txt - они также имеют числовые коды ISO, коды fips и другую информацию о стране.
источник
Во многих дистрибутивах Linux список кодов стран iso устанавливается по умолчанию в:
В Fedora / CentOS / RHEL / Debian пакет, содержащий этот файл, называется
iso-codes
( домашняя страница проекта ).XML-файл содержит отображение в иерархической структуре:
Он может быть преобразован в формат записи (например, для импорта базы данных) через XPath и оболочку один вкладыш:
В качестве альтернативы можно использовать Python-модуль Python для чтения и преобразования кодов из этого пакета, например:
источник
Я хотел бы добавить pycountry, потому что у вас есть тег python, и, кажется, это то, что вы хотели. Из документов:
источник
Вы можете получить полный список Alpha 2 и Alpha 3 (плюс другую информацию) по адресу http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes/resource/9c3b30dd-f5f3-4bbe-a3cb -d7b2c21d66ce На него есть ссылка с http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes
источник
Я обновил скрипт @ scw, который очищает данные из Википедии. Теперь он использует
requests
вместоurllib2
Beautiful Soup 4 и выводит JSON вместо записи в файл CSV.Выводит JSON как:
источник
Вы можете использовать этот код https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - lxml всегда быстрее, чем BeautifulSoup.
Скопировал это здесь:
Еще одна приятная библиотека: https://github.com/neuront/python-iso3166
источник
В Open Knowledge Foundation также есть отличный набор данных, который включает ISO 3166 alpha3, alpha2, numeric, а также многие другие.
http://data.okfn.org/data/core/country-codes#data
https://github.com/datasets/country-codes
источник
Я нашел очень хорошую базу данных на репозитории github - https://github.com/stefangabos/world_countries
На момент написания хранилища состоит из
json
,csv
,sql
файлов для 22 языков с различными кодами стран: ISO 3166-1 альфа-3, ISO 3166-1 альфа-2 и полных имен.База данных, кажется, обновляется довольно регулярно
источник
Попробуйте этот список:
https://gist.github.com/eparreno/205900
Он имеет двухбуквенные, трехбуквенные и числовые коды ISO с краткими названиями стран.
источник
массив php с 3-мя буквенными кодами стран ISO из статьи в Википедии
Я скопировал и вставил список из Википедии и создал массив. Возможно, этот код может помочь кому-то сэкономить время, которое хочет создать массив кодов стран. Я не знаком с Python, но создание массива должно быть похоже на php.
источник
Если вы не хотите жестко кодировать список стран (который я не рекомендую, потому что он сильно меняется), используйте этот URL, из которого вы получите двухбуквенный код и название страны в формате JSON : annsystem.com/api / getCountry
Сюда также входят страны, не входящие в ООН .
Подробности и параметры смотрите здесь: flossk.org/en/blog/country-list-good-all
источник
В случае, если кто-нибудь из пользователей R наткнется на этот поток, вот решение R:
countrycode
Пакет содержит полный список кодов стран в различных форматах. Из документации пакета:Пакет также конвертирует между различными кодами и может идентифицировать страны по стандартным или нестандартным именам с помощью регулярных выражений.
источник
Просто используйте инструменты Microsoft Excel Power BI для извлечения данных из Википедии. Для создания превосходной страницы и ее сохранения в любом формате вам понадобится менее 30 секунд.
источник
Это старая ветка, но ее стоит обновить.
Перемотка вперед / назад по кодам стран Alpha2 и Alpha3, возвращает массивный объект для каждой страны, который включает в себя телефонные коды, валюту, информацию iso, информацию IOC, почтовые коды и многое другое: https://github.com/rolinger/iso-country -data-проверки / настройки
источник
Для получения информации о странах (имя, символ ISO 2, символ ISO 3, ...) вы можете использовать этот пакет NuGet по адресу angrymonkeycloud.com/geography .
Это бесплатный клиент .Net, который получает информацию из RESTful API.
источник