Ülke kodlarıyla birlikte ülkelerin tam listesini arıyorum .
Bu sayfadaki gibi (tam ve geçerli olması gerekir):
Ülke kodlarıyla birlikte ülkelerin tam listesini arıyorum .
Bu sayfadaki gibi (tam ve geçerli olması gerekir):
Yanıtlar:
ISO 3166-1 resmi sitesi olasılıkla iki harfli kodları için en güncel kaynaktır. Maalesef, alfa-3 çevrimiçi değil, sitelerden alıntı yapıyorlar :
ISO 3166-1 alpha-3 ülke kodunu ISO 3166 / MA web sitesinde ücretsiz indirmek için nerede bulabilirim?
Hiçbir yerde. Alpha-3 kodu ücretsiz kullanılmaz. ISO 3166-1 Uluslararası Standartını ISO Mağazamızdan satın alabilirsiniz. Üç harfli kodu içerir.
İnternet çağında biraz garip, ama neyse ki, tam listeye sahip bir Wikipedia makalesi ve konuyu kapsayan bir BM resmi belgesi ve ülke kodları var .
Güncelleştirme:
CIA sitesinde FIPS 10, ISO 3166 Alpha2, ISO 3166 Alpha3, STANAG ve Internet TLD (örneğin .il veya .uk) ile bir liste var .
Bağlantı özeti :
Bu listenin Antartica gibi ülke dışı varlıklar içerdiğini unutmayın.
Listenizi düzenli aralıklarla güncellemek istiyorsanız, kaynaklardan birini kazıyabilir ve sonuçlarını yararlı bir biçimde ayrıştırabilirsiniz. Wikipedia ülke kodu listesini CSV'ye dönüştürmek için burada yaptım :
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)
İki ve üç harfli kodların tümünü (en çok) http://download.geonames.org/export/dump/countryInfo.txt adresinde bulabilirsiniz - ayrıca ISO sayısal ve fips kodları ve diğer ülke bilgilerine de sahiptir.
Çoğu Linux dağıtımında, aşağıdaki varsayılan olarak bir ülke kodlarının listesi yüklenir:
/usr/share/xml/iso-codes/iso_3166.xml
Fedora / CentOS / RHEL / Debian altında , bu dosyayı içeren paket adı iso-codes
( proje ana sayfası ).
XML dosyası eşleştirmeyi hiyerarşik bir yapıda içerir:
<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" />
[..]
XPath ve kabuk bir liner ile rekor bazlı bir formata dönüştürülebilir (örneğin, veri tabanı içe aktarımı için):
$ 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}'
Alternatif olarak, bu paketten kodları okumak ve dönüştürmek için Python modülü pycountry'yi kullanabilirsiniz, örneğin:
$ pip3 install --user pycountry
$ python3
>>> import pycountry
>>> for i in pycountry.countries:
... print('{},{}'.format(i.alpha2,i.alpha3))
...
AF,AFG
AX,ALA
AL,ALB
[..]
Pycountry'i eklemek istiyorum çünkü bir python etiketiniz var ve istediğiniz gibi görünüyor. Dokümanlardan:
ISO ülkesi, alt bölümü, dili, para birimi ve senaryo tanımları ve çevirileri
pycountry, standartlar için ISO veritabanlarını sağlar:
639 Dil
3166 Ülke
3166-3 Silinmiş ülkeler
3166-2 Ülkelerin bölümleri
4217 Para birimleri
15924 Scriptler
Paket, Debian'ın pkg-isocodes belgesinin bir kopyasını içerir ve verileri bir Python API'sinden erişilebilir hale getirir.
Http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes/resource/9c3b30dd-f5f3-4bbe-a3cb adresinden tam bir Alpha 2 ve Alpha 3 listesi alabilirsiniz (ayrıca diğer bilgileri). -d7b2c21d66ce http://datahub.io/dataset/iso-3166-1-alpha-2-country-codes adresinden bir bağlantı var
@ Scw'nin Wikipedia'daki verileri kazıdığı betiğini güncelledim. Şimdi , Beautiful Soup 4 requests
yerine kullanır urllib2
ve bir CSV dosyasına yazmak yerine bir JSON çıkarır.
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
))
Bir JSON benzeri çıktılar:
[
{
"name": "Afghanistan",
"alpha_3": "AFG",
"alpha_2": "AF",
"numeric": "004"
},
{
"name": "Åland Islands",
"alpha_3": "ALA",
"alpha_2": "AX",
"numeric": "248"
},
...
Bu kodu kullanabilirsiniz https://classic.scraperwiki.com/scrapers/iso_3166-1/edit/ - lxml her zaman BeautifulSoup'tan daha hızlıdır.
Buraya kopyaladım:
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")
Bir daha güzel kütüphane: https://github.com/neuront/python-iso3166
Open Knowledge Foundation'da ayrıca ISO 3166 alpha3, alpha2, sayısal ve diğerleri de dahil olmak üzere harika bir veri kümesi vardır.
Github deposunda çok güzel bir veritabanı buldum - https://github.com/stefangabos/world_countries
Depo yazma anında oluşur json
, csv
, sql
22 farklı ülke kodları kullanan diller için dosyaları: ISO 3166-1 alpha-3, ISO 3166-1 alpha-2 ve tam ad.
Veritabanı oldukça düzenli olarak güncelleniyor gibi görünüyor
Bu listeyi dene:
https://gist.github.com/eparreno/205900
Ülke kısa form adlarına sahip ISO 2 harfli, 3 harfli ve sayısal kodlara sahiptir.
Wikipedia makalesinden 3 harfli ISO ülke kodları içeren bir php dizisi
Listeyi Wikipedia'dan kopyalayıp yapıştırdım ve diziyi oluşturdum. Belki bu kod, birilerinin ülke kodları dizisini oluşturmak isteyen zaman kazanmasına yardımcı olabilir. Python'a aşina değilim, fakat dizi oluşturma php'ye benzer olmalıdır.
$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");
Ülke listesini kodlamak istemiyorsanız (tavsiye etmiyorum, çok değiştiği için), bu URL'yi JSON biçiminde 2 harfli kod ve ülke adını aldığınız yerde kullanın : annsystem.com/api / getCountry
Aynı zamanda BM ve BM üyesi olmayan ülkeleri de içermektedir .
Ayrıntılar ve parametreler için buraya bakınız: flossk.org/en/blog/country-list-good-all
Herhangi bir R kullanıcısı bu konuya rastlarsa, işte R çözümü:
countrycode
Paket birçok farklı biçimde ülke kodlarının tam listesini içerir. Paket dokümantasyonundan:
Aşağıdaki kodlama şemalarını destekler: Savaş karakteri, CoW-sayısal, ISO3-karakter, ISO3-sayısal, ISO2-karakter, IMF-sayısal, Uluslararası Olimpiyat Komitesi, FIPS 10-4, FAO-sayısal, Birleşmiş Milletler, Dünya Bankası karakteri, resmi İngilizce kısa ülke adları (ISO), kıta, bölge.
Paket aynı zamanda farklı kodlar arasında dönüşecek ve düzenli ifadeler kullanarak ülkeleri standart veya standart olmayan adlarla tanımlayabilecektir.
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")
Verileri Wikipedia'dan çıkarmak için Microsoft Excel Power BI araçlarını kullanın. Sayfanın mükemmel bir kazıma oluşturması ve ardından istediğiniz formata kaydetmesi 30 saniyeden uzun sürüyor.
Bu eski bir konudur, ancak bunun için güncellenmeye değer.
Alpha2 ve Alpha3 ülke kodlarında ileri / geri aramalar, telefon kodları, para birimi, iso bilgileri, IOC bilgileri, posta kodları ve daha fazlasını içeren her ülke için büyük bir nesne döndürür: https://github.com/rolinger/iso-country -veri doğrulama / ayarlar
Ülke bilgilerini almak için (İsim, ISO 2 karakter, ISO 3 karakter, ...) bu NuGet paketini aşağıdaki adreste kullanabilirsiniz. NuGet angrymonkeycloud.com/geography kullanabilirsiniz .
Bir RESTful API'den bilgi alan ücretsiz bir Net istemcisidir.