The Perl Locale :: Codes distribution sangat komprehensif dan dipelihara secara aktif.
Dave Baird
Jika ini adalah data terbuka yang Anda cari maka saya pikir tempat untuk bertanya adalah Open Data Stack Exchange.
PolyGeo
Jawaban:
31
Situs resmi ISO 3166-1 mungkin merupakan sumber terbaru untuk kode dua huruf. Sayangnya, mereka tidak memiliki alpha-3 online, mengutip situs mereka :
Di mana saya dapat menemukan kode negara ISO 3166-1 alpha-3 untuk diunduh gratis di Situs Web ISO 3166 / MA?
Tidak ada tempat Kode alpha-3 tidak tersedia secara gratis. Anda dapat membeli Standar Internasional ISO 3166-1 dari Toko ISO kami. Ini berisi kode tiga huruf.
Jawaban ini sekarang 100% bermanfaat sebagai tautan pertama, situs resmi, sekarang juga menyediakan kode alpha-3 gratis di tabel copypastable yang diformat dengan baik.
Dirk van Bergen
@ DirkvanBergen Itu langkah yang bagus, tapi meja mereka jauh dari yang diformat dengan baik. Pagination 10 halaman, tanpa tautan CSV.
Adam Matan
4
Gunakan tautan di sebelah kiri untuk hanya menampilkan kode yang ditetapkan dan kemudian atur halaman untuk menampilkan 300 dan Anda memiliki semuanya, salin tempel ke excel dan (ab) gunakan dengan cara apa pun yang Anda inginkan.
Dirk van Bergen
14
Jika Anda ingin memperbarui daftar secara berkala, Anda dapat mengikis salah satu sumber dan memilah hasilnya ke dalam format yang bermanfaat. Saya sudah melakukannya di sini untuk mengubah daftar kode negara Wikipedia menjadi 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)
Saya suka pendekatan ini. Saya memperbarui skrip ini untuk menggunakan pustaka yang lebih baru dan menghasilkan JSON alih-alih menulis ke file CSV: gis.stackexchange.com/a/151571/54020
Saya memperbarui skrip @ scw yang menghapus data dari Wikipedia. Sekarang ia menggunakan requestsbukan urllib2, Beautiful Soup 4 dan menghasilkan JSON alih-alih menulis ke file 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")
Pada saat menulis repositori terdiri dari json, csv, sqlfile untuk 22 bahasa dengan kode negara yang berbeda: ISO 3166-1 alpha-3, ISO 3166-1 alpha-2 dan nama lengkap.
Saya menyalin dan menempel daftar dari Wikipedia dan membuat array. Mungkin kode ini dapat membantu seseorang menghemat waktu, yang ingin membuat berbagai kode negara. Saya tidak terbiasa dengan python, tetapi pembuatan array harus mirip dengan php.
Jika Anda tidak ingin mengkodekan daftar negara (yang saya tidak sarankan, karena banyak berubah) gunakan URL ini dari mana Anda mendapatkan kode 2 huruf dan nama negara dalam format JSON :
annsystem.com/api / getCountry
Ini juga termasuk negara-negara anggota PBB dan non-PBB .
Jika ada pengguna R yang menemukan thread ini, inilah solusi R:
The countrycodepaket berisi daftar lengkap kode negara dalam berbagai format. Dari dokumentasi paket:
Mendukung skema pengkodean berikut: Korelasi karakter Perang, CoW-numeric, ISO3-numeric, ISO3-numeric, ISO2-numeric, numeric IMF, Komite Olimpiade Internasional, FIPS 10-4, FAO numeric, numerik PBB, numerik Bank Dunia, nama negara pendek resmi bahasa Inggris (ISO), benua, wilayah.
Paket ini juga akan mengkonversi antara kode yang berbeda dan dapat mengidentifikasi negara dengan nama standar atau non-standar menggunakan ekspresi reguler.
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")
Cukup Gunakan alat Microsoft Excel Power BI untuk mengekstrak data dari Wikipedia. Butuh waktu kurang dari 30 detik untuk membuat goresan excel halaman dan kemudian menyimpannya ke format apa pun yang Anda suka.
Untuk mengambil informasi negara (Nama, karakter ISO 2, karakter ISO 3, ...) Anda dapat menggunakan paket NuGet ini di angrymonkeycloud.com/geography .
Ini adalah klien .Net gratis yang mengambil informasi dari API ISTIRAHAT.
Jawaban:
Situs resmi ISO 3166-1 mungkin merupakan sumber terbaru untuk kode dua huruf. Sayangnya, mereka tidak memiliki alpha-3 online, mengutip situs mereka :
Agak aneh di era internet, tapi untungnya, ada artikel Wikipedia dengan daftar lengkap dan dokumen resmi PBB yang membahas masalah ini, dengan kode negara .
Memperbarui:
Ada daftar di situs CIA dengan FIPS 10, ISO 3166 Alpha2, ISO 3166 Alpha3, STANAG dan TLD Internet (misalnya, .il atau .uk).
Ringkasan tautan :
Perhatikan bahwa daftar ini berisi entitas non-negara seperti Antartika.
sumber
Jika Anda ingin memperbarui daftar secara berkala, Anda dapat mengikis salah satu sumber dan memilah hasilnya ke dalam format yang bermanfaat. Saya sudah melakukannya di sini untuk mengubah daftar kode negara Wikipedia menjadi CSV :
sumber
Anda dapat menemukan semua (sebagian besar?) Dari dua dan tiga kode huruf di http://download.geonames.org/export/dump/countryInfo.txt - juga memiliki kode numerik dan fips ISO dan info negara lainnya.
sumber
Pada banyak distribusi Linux, daftar kode negara iso diinstal secara default di bawah:
Di bawah Fedora / CentOS / RHEL / Debian , paket yang berisi file ini disebut
iso-codes
( beranda proyek ).File XML berisi pemetaan dalam struktur hierarkis:
Itu dapat diubah menjadi format berbasis catatan (misalnya untuk impor basis data) melalui XPath dan shell one liner:
Atau, satu dapat menggunakan Python modul pycountry untuk membaca dan mengubah kode dari paket yang, misalnya:
sumber
Saya ingin menambahkan pycountry karena Anda memiliki tag python dan sepertinya itulah yang Anda inginkan. Dari dokumen:
sumber
Anda bisa mendapatkan daftar Alpha 2 dan Alpha 3 lengkap (plus info lainnya) dari http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes/resource/9c3b30dd-f5f3-4bbe-a3cb -d7b2c21d66ce Ada tautan ke sana dari http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes
sumber
Saya memperbarui skrip @ scw yang menghapus data dari Wikipedia. Sekarang ia menggunakan
requests
bukanurllib2
, Beautiful Soup 4 dan menghasilkan JSON alih-alih menulis ke file CSV.Output JSON seperti:
sumber
Anda dapat menggunakan kode ini https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - lxml selalu lebih cepat daripada BeautifulSoup.
Salin di sini:
Satu lagi perpustakaan yang bagus: https://github.com/neuront/python-iso3166
sumber
Ada set data hebat di Open Knowledge Foundation yang mencakup ISO 3166 alpha3, alpha2, numeric, dan banyak lainnya.
http://data.okfn.org/data/core/country-codes#data
https://github.com/datasets/country-codes
sumber
Saya menemukan database yang sangat bagus di repo github - https://github.com/stefangabos/world_countries
Pada saat menulis repositori terdiri dari
json
,csv
,sql
file untuk 22 bahasa dengan kode negara yang berbeda: ISO 3166-1 alpha-3, ISO 3166-1 alpha-2 dan nama lengkap.Database tampaknya diperbarui secara teratur
sumber
Coba daftar ini:
https://gist.github.com/eparreno/205900
Ini memiliki ISO 2 huruf, 3 huruf dan kode numerik dengan nama formulir pendek negara.
sumber
php Array dengan 3 huruf kode negara ISO dari artikel Wikipedia
Saya menyalin dan menempel daftar dari Wikipedia dan membuat array. Mungkin kode ini dapat membantu seseorang menghemat waktu, yang ingin membuat berbagai kode negara. Saya tidak terbiasa dengan python, tetapi pembuatan array harus mirip dengan php.
sumber
Jika Anda tidak ingin mengkodekan daftar negara (yang saya tidak sarankan, karena banyak berubah) gunakan URL ini dari mana Anda mendapatkan kode 2 huruf dan nama negara dalam format JSON : annsystem.com/api / getCountry
Ini juga termasuk negara-negara anggota PBB dan non-PBB .
Untuk detail dan parameter lihat di sini: flossk.org/en/blog/country-list-good-all
sumber
Jika ada pengguna R yang menemukan thread ini, inilah solusi R:
The
countrycode
paket berisi daftar lengkap kode negara dalam berbagai format. Dari dokumentasi paket:Paket ini juga akan mengkonversi antara kode yang berbeda dan dapat mengidentifikasi negara dengan nama standar atau non-standar menggunakan ekspresi reguler.
sumber
Cukup Gunakan alat Microsoft Excel Power BI untuk mengekstrak data dari Wikipedia. Butuh waktu kurang dari 30 detik untuk membuat goresan excel halaman dan kemudian menyimpannya ke format apa pun yang Anda suka.
sumber
Ini adalah utas lama, tetapi layak diperbarui untuk ini.
Forward / Reverse look up pada kode negara Alpha2 dan Alpha3, mengembalikan objek besar per negara yang mencakup kode telepon, mata uang, info iso, info IOC, kode pos, dan lainnya: https://github.com/rolinger/iso-country -data-validasi / pengaturan
sumber
Untuk mengambil informasi negara (Nama, karakter ISO 2, karakter ISO 3, ...) Anda dapat menggunakan paket NuGet ini di angrymonkeycloud.com/geography .
Ini adalah klien .Net gratis yang mengambil informasi dari API ISTIRAHAT.
sumber