CountryList() - Eoddata.com web service blog series

Sun 02 April 2017 by Adrian Torrie

This post is part 4 of the "Using Python with Eoddata.com web service" series:

  1. Master post - Eoddata.com web service blog series
  2. Login() - Eoddata.com web service blog series
  3. ExchangeList() - Eoddata.com web service blog series
  4. CountryList() - Eoddata.com web service blog series
  5. SymbolList() - Eoddata.com web service blog series
  6. FundamentalList() - Eoddata.com web service blog series

Summary

Part of the blog series related to making web service calls to Eoddata.com. Overview of the web service can be found here.

Version Control

In [1]:
%run ../../code/version_check.py
Python: 3.5.3 |Continuum Analytics, Inc.| (default, Feb 22 2017, 21:13:27) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

matplotlib:	2.0.0
numpy:		1.12.0
pandas:		0.19.2
quandl:		3.0.1
sklearn:	0.18.1
scipy:		0.18.1
statsmodels:	0.8.0
tensorflow:	1.0.1

Change Log

Date Created: 2017-04-02

Date of Change    Change Notes
--------------    ----------------------------------------------------------------
2017-04-02        Initial draft

Setup

In [2]:
%run ../../code/eoddata.py

import pandas as pd
import requests as r

ws = 'http://ws.eoddata.com/data.asmx'
ns='http://ws.eoddata.com/Data'

with (Client()) as eoddata:
    token = eoddata.get_token()

CountryList()

Web service call

In [3]:
session = r.Session()

call = 'CountryList'
kwargs = {'Token': token,}
pattern = ".//{%s}CountryBase"

url = '/'.join((ws, call))
response = session.get(url, params=kwargs, stream=True)

if response.status_code == 200:
    root = etree.parse(response.raw).getroot()
    
session.close()

Gather elements

In [4]:
elements = root.findall(pattern %(ns))

Get data

In [5]:
countries = sorted((element.get('Code'), element.get('Name')) for element in elements)
countries
Out[5]:
[('AD', 'Andorra'),
 ('AE', 'United Arab Emirates'),
 ('AF', 'Afghanistan'),
 ('AG', 'Antigua'),
 ('AI', 'Anguilla'),
 ('AL', 'Albania'),
 ('AM', 'Armenia'),
 ('AN', 'Netherlands Antilles'),
 ('AO', 'Angola'),
 ('AR', 'Argentina'),
 ('AS', 'American Samoa'),
 ('AT', 'Austria'),
 ('AU', 'Australia'),
 ('AW', 'Aruba'),
 ('AZ', 'Azerbaijan'),
 ('BA', 'Bosnia'),
 ('BB', 'Barbados'),
 ('BD', 'Bangladesh'),
 ('BE', 'Belgium'),
 ('BF', 'Burkinia Faso'),
 ('BG', 'Bulgaria'),
 ('BH', 'Bahrain'),
 ('BI', 'Burundi'),
 ('BJ', 'Benin'),
 ('BM', 'Bermuda'),
 ('BN', 'Brunei Darussalam'),
 ('BO', 'Bolivia'),
 ('BR', 'Brazil'),
 ('BS', 'Bahamas'),
 ('BT', 'Bhutan'),
 ('BV', 'Bouvet Island'),
 ('BW', 'Botswana'),
 ('BX', 'Barbuda'),
 ('BY', 'Belarus'),
 ('BZ', 'Belize'),
 ('CA', 'Canada'),
 ('CC', 'Cocos Keeling Islands'),
 ('CF', 'Central African Republic'),
 ('CG', 'Congo'),
 ('CH', 'Switzerland'),
 ('CI', "Cote Di'voire"),
 ('CK', 'Cook Islands'),
 ('CL', 'Chile'),
 ('CM', 'Cameroon'),
 ('CN', 'China'),
 ('CO', 'Colombia'),
 ('CR', 'Costa Rica'),
 ('CS', 'Serbia and Montenegro'),
 ('CU', 'Cuba'),
 ('CV', 'Cape Verde'),
 ('CX', 'Christmas Island'),
 ('CY', 'Cyprus'),
 ('CZ', 'Czech Republic'),
 ('DE', 'Germany'),
 ('DJ', 'Djibouti'),
 ('DK', 'Denmark'),
 ('DM', 'Dominica'),
 ('DO', 'Dominican Republic'),
 ('DZ', 'Algeria'),
 ('EC', 'Ecuador'),
 ('EE', 'Estonia'),
 ('EG', 'Egypt'),
 ('EH', 'Western Sahara'),
 ('EQ', 'Equatorial Guinea'),
 ('ER', 'Eritrea'),
 ('ES', 'Spain'),
 ('ET', 'Ethiopia'),
 ('FA', 'French Antilles'),
 ('FI', 'Finland'),
 ('FJ', 'Fiji'),
 ('FK', 'Falkland Islands'),
 ('FM', 'Micronesia'),
 ('FO', 'Faroe Islands'),
 ('FR', 'France'),
 ('GA', 'Gabon'),
 ('GD', 'Grenada'),
 ('GE', 'Georgia'),
 ('GF', 'French Guyana'),
 ('GH', 'Ghana'),
 ('GI', 'Gibraltar'),
 ('GL', 'Greenland'),
 ('GM', 'Gambia'),
 ('GN', 'Guinea'),
 ('GP', 'Guadeloupe'),
 ('GR', 'Greece'),
 ('GR', 'Grenadines'),
 ('GS', 'Guernsey'),
 ('GT', 'Guatemala'),
 ('GU', 'Guam'),
 ('GW', 'Guinea Bissau'),
 ('GY', 'Guyana'),
 ('HK', 'Hong Kong'),
 ('HM', 'Heard Island and McDonald Islands'),
 ('HN', 'Honduras'),
 ('HR', 'Croatia'),
 ('HT', 'Haiti'),
 ('HU', 'Hungary'),
 ('HZ', 'Herzegovina'),
 ('ID', 'Indonesia'),
 ('IE', 'Ireland'),
 ('IL', 'Israel'),
 ('IM', 'Isle of Man'),
 ('IN', 'India'),
 ('IO', 'British Indian Ocean Territory'),
 ('IQ', 'Iraq'),
 ('IR', 'Iran'),
 ('IS', 'Iceland'),
 ('IT', 'Italy'),
 ('IV', 'Ivory Coast'),
 ('JE', 'Jersey'),
 ('JM', 'Jamaica'),
 ('JN', 'Jan Mayen'),
 ('JO', 'Jordan'),
 ('JP', 'Japan'),
 ('KE', 'Kenya'),
 ('KG', 'Kyrgyzstan'),
 ('KH', 'Cambodia'),
 ('KI', 'Kiribati'),
 ('KM', 'Comores'),
 ('KN', 'St Kitts'),
 ('KP', 'North Korea'),
 ('KR', 'South Korea'),
 ('KW', 'Kuwait'),
 ('KY', 'Cayman Islands'),
 ('KZ', 'Kazakhstan'),
 ('LA', 'Laos'),
 ('LB', 'Lebanon'),
 ('LC', 'Saint Lucia'),
 ('LI', 'Liechtenstein'),
 ('LK', 'Sri Lanka'),
 ('LR', 'Liberia'),
 ('LS', 'Lesotho'),
 ('LT', 'Lithuania'),
 ('LU', 'Luxembourg'),
 ('LV', 'Latvia'),
 ('LY', 'Libya'),
 ('MA', 'Morocco'),
 ('MC', 'Monaco'),
 ('MD', 'Miquelon'),
 ('MD', 'Moldova'),
 ('MG', 'Madagascar'),
 ('MK', 'Macedonia'),
 ('ML', 'Mali'),
 ('MM', 'Myanmar'),
 ('MN', 'Mongolia'),
 ('MO', 'Macau'),
 ('MP', 'North Mariana Islands'),
 ('MQ', 'Martinique'),
 ('MR', 'Mauritania'),
 ('MS', 'Montserrat'),
 ('MT', 'Malta'),
 ('MU', 'Mauritius'),
 ('MV', 'Maldives'),
 ('MW', 'Malawi'),
 ('MX', 'Mexico'),
 ('MY', 'Malaysia'),
 ('MZ', 'Mozambique'),
 ('NA', 'Namibia'),
 ('NC', 'New Caledonia'),
 ('NE', 'Niger'),
 ('NF', 'Norfolk Island'),
 ('NG', 'Nigeria'),
 ('NI', 'Nicaragua'),
 ('NL', 'Netherlands'),
 ('NO', 'Norway'),
 ('NP', 'Nepal'),
 ('NR', 'Nauru'),
 ('NU', 'Niue'),
 ('NV', 'Nevis'),
 ('NZ', 'New Zealand'),
 ('OM', 'Oman'),
 ('PA', 'Panama'),
 ('PC', 'Principe'),
 ('PE', 'Peru'),
 ('PF', 'French Polynesia'),
 ('PG', 'Papua New Guinea'),
 ('PH', 'Philippines'),
 ('PK', 'Pakistan'),
 ('PL', 'Poland'),
 ('PM', 'St Pierre'),
 ('PN', 'Pitcairn Island'),
 ('PR', 'Puerto Rico'),
 ('PT', 'Portugal'),
 ('PW', 'Palau'),
 ('PY', 'Paraguay'),
 ('QA', 'Qatar'),
 ('RE', 'Reunion'),
 ('RO', 'Romania'),
 ('RU', 'Russia'),
 ('RW', 'Rwanda'),
 ('SA', 'Saudi Arabia'),
 ('SB', 'Solomon Islands'),
 ('SC', 'Seychelles'),
 ('SD', 'Sudan'),
 ('SE', 'Sweden'),
 ('SG', 'Singapore'),
 ('SH', 'St Helena'),
 ('SI', 'Slovenia'),
 ('SJ', 'Svalbard'),
 ('SK', 'Slovakia'),
 ('SL', 'Sierra Leone'),
 ('SM', 'San Marino'),
 ('SN', 'Senegal'),
 ('SO', 'Somalia'),
 ('SR', 'Surinaam'),
 ('ST', 'Sao Tome'),
 ('SV', 'El Salvador'),
 ('SY', 'Syria'),
 ('SZ', 'Swaziland'),
 ('TC', 'Turks and Caicos Islands'),
 ('TD', 'Chad'),
 ('TF', 'French Southern Territories'),
 ('TG', 'Togo'),
 ('TH', 'Thailand'),
 ('TJ', 'Tadzhikstan'),
 ('TK', 'Tokelau'),
 ('TM', 'Turkmenistan'),
 ('TN', 'Tunisia'),
 ('TO', 'Tonga'),
 ('TP', 'East Timor'),
 ('TR', 'Turkey'),
 ('TT', 'Trinidad and Tobago'),
 ('TV', 'Tuvalu'),
 ('TW', 'Taiwan'),
 ('TZ', 'Tanzania'),
 ('UA', 'Ukraine'),
 ('UF', 'Unidades Fomento'),
 ('UG', 'Uganda'),
 ('UK', 'United Kingdom'),
 ('US', 'United States'),
 ('UY', 'Uruguay'),
 ('UZ', 'Uzbekistan'),
 ('VA', 'Vatican City'),
 ('VC', 'St Vincent'),
 ('VE', 'Venezuela'),
 ('VG', 'Virgin Islands'),
 ('VN', 'Vietnam'),
 ('VU', 'Vanuatu'),
 ('WF', 'Wallis and Futuna Islands'),
 ('WS', 'Samoa'),
 ('YE', 'Yemen'),
 ('YU', 'Yugoslavia'),
 ('ZA', 'South Africa'),
 ('ZM', 'Zambia'),
 ('ZW', 'Zimbabwe')]

Save to file

In [6]:
with open('../../data/countries.csv', 'w') as f:
    for element in elements:
        f.write('"%s"\n' % '","'.join(element.attrib.values()))

Data inspection

In [7]:
for item in root.items():
    print (item)
('Message', 'Success')
('Date', '0001-01-01T00:00:00')
('Source', 'Data.CountryList')
In [8]:
for element in root.iter():
    print(element.attrib)
{'Message': 'Success', 'Date': '0001-01-01T00:00:00', 'Source': 'Data.CountryList'}
{}
{'Name': 'Afghanistan', 'Code': 'AF'}
{'Name': 'Albania', 'Code': 'AL'}
{'Name': 'Algeria', 'Code': 'DZ'}
{'Name': 'American Samoa', 'Code': 'AS'}
{'Name': 'Andorra', 'Code': 'AD'}
{'Name': 'Angola', 'Code': 'AO'}
{'Name': 'Anguilla', 'Code': 'AI'}
{'Name': 'Antigua', 'Code': 'AG'}
{'Name': 'Argentina', 'Code': 'AR'}
{'Name': 'Armenia', 'Code': 'AM'}
{'Name': 'Aruba', 'Code': 'AW'}
{'Name': 'Australia', 'Code': 'AU'}
{'Name': 'Austria', 'Code': 'AT'}
{'Name': 'Azerbaijan', 'Code': 'AZ'}
{'Name': 'Bahamas', 'Code': 'BS'}
{'Name': 'Bahrain', 'Code': 'BH'}
{'Name': 'Bangladesh', 'Code': 'BD'}
{'Name': 'Barbados', 'Code': 'BB'}
{'Name': 'Barbuda', 'Code': 'BX'}
{'Name': 'Belarus', 'Code': 'BY'}
{'Name': 'Belgium', 'Code': 'BE'}
{'Name': 'Belize', 'Code': 'BZ'}
{'Name': 'Benin', 'Code': 'BJ'}
{'Name': 'Bermuda', 'Code': 'BM'}
{'Name': 'Bhutan', 'Code': 'BT'}
{'Name': 'Bolivia', 'Code': 'BO'}
{'Name': 'Bosnia', 'Code': 'BA'}
{'Name': 'Botswana', 'Code': 'BW'}
{'Name': 'Bouvet Island', 'Code': 'BV'}
{'Name': 'Brazil', 'Code': 'BR'}
{'Name': 'British Indian Ocean Territory', 'Code': 'IO'}
{'Name': 'Brunei Darussalam', 'Code': 'BN'}
{'Name': 'Bulgaria', 'Code': 'BG'}
{'Name': 'Burkinia Faso', 'Code': 'BF'}
{'Name': 'Burundi', 'Code': 'BI'}
{'Name': 'Cambodia', 'Code': 'KH'}
{'Name': 'Cameroon', 'Code': 'CM'}
{'Name': 'Canada', 'Code': 'CA'}
{'Name': 'Cape Verde', 'Code': 'CV'}
{'Name': 'Cayman Islands', 'Code': 'KY'}
{'Name': 'Central African Republic', 'Code': 'CF'}
{'Name': 'Chad', 'Code': 'TD'}
{'Name': 'Chile', 'Code': 'CL'}
{'Name': 'China', 'Code': 'CN'}
{'Name': 'Christmas Island', 'Code': 'CX'}
{'Name': 'Cocos Keeling Islands', 'Code': 'CC'}
{'Name': 'Colombia', 'Code': 'CO'}
{'Name': 'Comores', 'Code': 'KM'}
{'Name': 'Congo', 'Code': 'CG'}
{'Name': 'Cook Islands', 'Code': 'CK'}
{'Name': 'Costa Rica', 'Code': 'CR'}
{'Name': "Cote Di'voire", 'Code': 'CI'}
{'Name': 'Croatia', 'Code': 'HR'}
{'Name': 'Cuba', 'Code': 'CU'}
{'Name': 'Cyprus', 'Code': 'CY'}
{'Name': 'Czech Republic', 'Code': 'CZ'}
{'Name': 'Denmark', 'Code': 'DK'}
{'Name': 'Djibouti', 'Code': 'DJ'}
{'Name': 'Dominica', 'Code': 'DM'}
{'Name': 'Dominican Republic', 'Code': 'DO'}
{'Name': 'East Timor', 'Code': 'TP'}
{'Name': 'Ecuador', 'Code': 'EC'}
{'Name': 'Egypt', 'Code': 'EG'}
{'Name': 'El Salvador', 'Code': 'SV'}
{'Name': 'Equatorial Guinea', 'Code': 'EQ'}
{'Name': 'Eritrea', 'Code': 'ER'}
{'Name': 'Estonia', 'Code': 'EE'}
{'Name': 'Ethiopia', 'Code': 'ET'}
{'Name': 'Falkland Islands', 'Code': 'FK'}
{'Name': 'Faroe Islands', 'Code': 'FO'}
{'Name': 'Fiji', 'Code': 'FJ'}
{'Name': 'Finland', 'Code': 'FI'}
{'Name': 'France', 'Code': 'FR'}
{'Name': 'French Antilles', 'Code': 'FA'}
{'Name': 'French Guyana', 'Code': 'GF'}
{'Name': 'French Polynesia', 'Code': 'PF'}
{'Name': 'French Southern Territories', 'Code': 'TF'}
{'Name': 'Gabon', 'Code': 'GA'}
{'Name': 'Gambia', 'Code': 'GM'}
{'Name': 'Georgia', 'Code': 'GE'}
{'Name': 'Germany', 'Code': 'DE'}
{'Name': 'Ghana', 'Code': 'GH'}
{'Name': 'Gibraltar', 'Code': 'GI'}
{'Name': 'Greece', 'Code': 'GR'}
{'Name': 'Greenland', 'Code': 'GL'}
{'Name': 'Grenada', 'Code': 'GD'}
{'Name': 'Grenadines', 'Code': 'GR'}
{'Name': 'Guadeloupe', 'Code': 'GP'}
{'Name': 'Guam', 'Code': 'GU'}
{'Name': 'Guatemala', 'Code': 'GT'}
{'Name': 'Guernsey', 'Code': 'GS'}
{'Name': 'Guinea', 'Code': 'GN'}
{'Name': 'Guinea Bissau', 'Code': 'GW'}
{'Name': 'Guyana', 'Code': 'GY'}
{'Name': 'Haiti', 'Code': 'HT'}
{'Name': 'Heard Island and McDonald Islands', 'Code': 'HM'}
{'Name': 'Herzegovina', 'Code': 'HZ'}
{'Name': 'Honduras', 'Code': 'HN'}
{'Name': 'Hong Kong', 'Code': 'HK'}
{'Name': 'Hungary', 'Code': 'HU'}
{'Name': 'Iceland', 'Code': 'IS'}
{'Name': 'India', 'Code': 'IN'}
{'Name': 'Indonesia', 'Code': 'ID'}
{'Name': 'Iran', 'Code': 'IR'}
{'Name': 'Iraq', 'Code': 'IQ'}
{'Name': 'Ireland', 'Code': 'IE'}
{'Name': 'Isle of Man', 'Code': 'IM'}
{'Name': 'Israel', 'Code': 'IL'}
{'Name': 'Italy', 'Code': 'IT'}
{'Name': 'Ivory Coast', 'Code': 'IV'}
{'Name': 'Jamaica', 'Code': 'JM'}
{'Name': 'Jan Mayen', 'Code': 'JN'}
{'Name': 'Japan', 'Code': 'JP'}
{'Name': 'Jersey', 'Code': 'JE'}
{'Name': 'Jordan', 'Code': 'JO'}
{'Name': 'Kazakhstan', 'Code': 'KZ'}
{'Name': 'Kenya', 'Code': 'KE'}
{'Name': 'Kiribati', 'Code': 'KI'}
{'Name': 'Kuwait', 'Code': 'KW'}
{'Name': 'Kyrgyzstan', 'Code': 'KG'}
{'Name': 'Laos', 'Code': 'LA'}
{'Name': 'Latvia', 'Code': 'LV'}
{'Name': 'Lebanon', 'Code': 'LB'}
{'Name': 'Lesotho', 'Code': 'LS'}
{'Name': 'Liberia', 'Code': 'LR'}
{'Name': 'Libya', 'Code': 'LY'}
{'Name': 'Liechtenstein', 'Code': 'LI'}
{'Name': 'Lithuania', 'Code': 'LT'}
{'Name': 'Luxembourg', 'Code': 'LU'}
{'Name': 'Macau', 'Code': 'MO'}
{'Name': 'Macedonia', 'Code': 'MK'}
{'Name': 'Madagascar', 'Code': 'MG'}
{'Name': 'Malawi', 'Code': 'MW'}
{'Name': 'Malaysia', 'Code': 'MY'}
{'Name': 'Maldives', 'Code': 'MV'}
{'Name': 'Mali', 'Code': 'ML'}
{'Name': 'Malta', 'Code': 'MT'}
{'Name': 'Martinique', 'Code': 'MQ'}
{'Name': 'Mauritania', 'Code': 'MR'}
{'Name': 'Mauritius', 'Code': 'MU'}
{'Name': 'Mexico', 'Code': 'MX'}
{'Name': 'Micronesia', 'Code': 'FM'}
{'Name': 'Miquelon', 'Code': 'MD'}
{'Name': 'Moldova', 'Code': 'MD'}
{'Name': 'Monaco', 'Code': 'MC'}
{'Name': 'Mongolia', 'Code': 'MN'}
{'Name': 'Montserrat', 'Code': 'MS'}
{'Name': 'Morocco', 'Code': 'MA'}
{'Name': 'Mozambique', 'Code': 'MZ'}
{'Name': 'Myanmar', 'Code': 'MM'}
{'Name': 'Namibia', 'Code': 'NA'}
{'Name': 'Nauru', 'Code': 'NR'}
{'Name': 'Nepal', 'Code': 'NP'}
{'Name': 'Netherlands', 'Code': 'NL'}
{'Name': 'Netherlands Antilles', 'Code': 'AN'}
{'Name': 'Nevis', 'Code': 'NV'}
{'Name': 'New Caledonia', 'Code': 'NC'}
{'Name': 'New Zealand', 'Code': 'NZ'}
{'Name': 'Nicaragua', 'Code': 'NI'}
{'Name': 'Niger', 'Code': 'NE'}
{'Name': 'Nigeria', 'Code': 'NG'}
{'Name': 'Niue', 'Code': 'NU'}
{'Name': 'Norfolk Island', 'Code': 'NF'}
{'Name': 'North Korea', 'Code': 'KP'}
{'Name': 'North Mariana Islands', 'Code': 'MP'}
{'Name': 'Norway', 'Code': 'NO'}
{'Name': 'Oman', 'Code': 'OM'}
{'Name': 'Pakistan', 'Code': 'PK'}
{'Name': 'Palau', 'Code': 'PW'}
{'Name': 'Panama', 'Code': 'PA'}
{'Name': 'Papua New Guinea', 'Code': 'PG'}
{'Name': 'Paraguay', 'Code': 'PY'}
{'Name': 'Peru', 'Code': 'PE'}
{'Name': 'Philippines', 'Code': 'PH'}
{'Name': 'Pitcairn Island', 'Code': 'PN'}
{'Name': 'Poland', 'Code': 'PL'}
{'Name': 'Portugal', 'Code': 'PT'}
{'Name': 'Principe', 'Code': 'PC'}
{'Name': 'Puerto Rico', 'Code': 'PR'}
{'Name': 'Qatar', 'Code': 'QA'}
{'Name': 'Reunion', 'Code': 'RE'}
{'Name': 'Romania', 'Code': 'RO'}
{'Name': 'Russia', 'Code': 'RU'}
{'Name': 'Rwanda', 'Code': 'RW'}
{'Name': 'Saint Lucia', 'Code': 'LC'}
{'Name': 'Samoa', 'Code': 'WS'}
{'Name': 'San Marino', 'Code': 'SM'}
{'Name': 'Sao Tome', 'Code': 'ST'}
{'Name': 'Saudi Arabia', 'Code': 'SA'}
{'Name': 'Senegal', 'Code': 'SN'}
{'Name': 'Serbia and Montenegro', 'Code': 'CS'}
{'Name': 'Seychelles', 'Code': 'SC'}
{'Name': 'Sierra Leone', 'Code': 'SL'}
{'Name': 'Singapore', 'Code': 'SG'}
{'Name': 'Slovakia', 'Code': 'SK'}
{'Name': 'Slovenia', 'Code': 'SI'}
{'Name': 'Solomon Islands', 'Code': 'SB'}
{'Name': 'Somalia', 'Code': 'SO'}
{'Name': 'South Africa', 'Code': 'ZA'}
{'Name': 'South Korea', 'Code': 'KR'}
{'Name': 'Spain', 'Code': 'ES'}
{'Name': 'Sri Lanka', 'Code': 'LK'}
{'Name': 'St Helena', 'Code': 'SH'}
{'Name': 'St Kitts', 'Code': 'KN'}
{'Name': 'St Pierre', 'Code': 'PM'}
{'Name': 'St Vincent', 'Code': 'VC'}
{'Name': 'Sudan', 'Code': 'SD'}
{'Name': 'Surinaam', 'Code': 'SR'}
{'Name': 'Svalbard', 'Code': 'SJ'}
{'Name': 'Swaziland', 'Code': 'SZ'}
{'Name': 'Sweden', 'Code': 'SE'}
{'Name': 'Switzerland', 'Code': 'CH'}
{'Name': 'Syria', 'Code': 'SY'}
{'Name': 'Tadzhikstan', 'Code': 'TJ'}
{'Name': 'Taiwan', 'Code': 'TW'}
{'Name': 'Tanzania', 'Code': 'TZ'}
{'Name': 'Thailand', 'Code': 'TH'}
{'Name': 'Togo', 'Code': 'TG'}
{'Name': 'Tokelau', 'Code': 'TK'}
{'Name': 'Tonga', 'Code': 'TO'}
{'Name': 'Trinidad and Tobago', 'Code': 'TT'}
{'Name': 'Tunisia', 'Code': 'TN'}
{'Name': 'Turkey', 'Code': 'TR'}
{'Name': 'Turkmenistan', 'Code': 'TM'}
{'Name': 'Turks and Caicos Islands', 'Code': 'TC'}
{'Name': 'Tuvalu', 'Code': 'TV'}
{'Name': 'Uganda', 'Code': 'UG'}
{'Name': 'Ukraine', 'Code': 'UA'}
{'Name': 'Unidades Fomento', 'Code': 'UF'}
{'Name': 'United Arab Emirates', 'Code': 'AE'}
{'Name': 'United Kingdom', 'Code': 'UK'}
{'Name': 'United States', 'Code': 'US'}
{'Name': 'Uruguay', 'Code': 'UY'}
{'Name': 'Uzbekistan', 'Code': 'UZ'}
{'Name': 'Vanuatu', 'Code': 'VU'}
{'Name': 'Vatican City', 'Code': 'VA'}
{'Name': 'Venezuela', 'Code': 'VE'}
{'Name': 'Vietnam', 'Code': 'VN'}
{'Name': 'Virgin Islands', 'Code': 'VG'}
{'Name': 'Wallis and Futuna Islands', 'Code': 'WF'}
{'Name': 'Western Sahara', 'Code': 'EH'}
{'Name': 'Yemen', 'Code': 'YE'}
{'Name': 'Yugoslavia', 'Code': 'YU'}
{'Name': 'Zambia', 'Code': 'ZM'}
{'Name': 'Zimbabwe', 'Code': 'ZW'}

Helper function

In [9]:
def CountryList(session, token):
    call = 'CountryList'
    kwargs = {'Token': token,}
    pattern = ".//{%s}CountryBase"

    url = '/'.join((ws, call))
    response = session.get(url, params=kwargs, stream=True)

    if response.status_code == 200:
        root = etree.parse(response.raw).getroot()
        
    return sorted((element.get('Code'), element.get('Name')) for element in elements)

Usage

In [10]:
session = r.session()
countries = CountryList(session, token)
session.close()

countries[:10]
Out[10]:
[('AD', 'Andorra'),
 ('AE', 'United Arab Emirates'),
 ('AF', 'Afghanistan'),
 ('AG', 'Antigua'),
 ('AI', 'Anguilla'),
 ('AL', 'Albania'),
 ('AM', 'Armenia'),
 ('AN', 'Netherlands Antilles'),
 ('AO', 'Angola'),
 ('AR', 'Argentina')]

Client function

In [11]:
# pandas dataframe is returned
df = eoddata.country_list()

df.head()
Out[11]:
Name Code
0 Afghanistan AF
1 Albania AL
2 Algeria DZ
3 American Samoa AS
4 Andorra AD

Comments

Fork me on GitHub