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