Skip to content

Commit d5a69e0

Browse files
Merge pull request #101 from sinhrks/oecd
ENH: support OECD datasource
2 parents 1256a46 + 5828be2 commit d5a69e0

File tree

13 files changed

+358
-1
lines changed

13 files changed

+358
-1
lines changed

.travis.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ install:
3737
- conda update -q conda
3838
# Useful for debugging any issues with conda
3939
- conda info -a
40-
4140
- conda create -q -n test-environment python=$PYTHON pandas=$PANDAS nose coverage setuptools html5lib lxml
4241
- source activate test-environment
4342
- pip install beautifulsoup4
43+
- if [[ "$PYTHON" == "2.6" ]]; then
44+
pip install simplejson;
45+
fi
4446
- pip install coveralls --quiet
4547
- conda list
4648
- python setup.py install

docs/source/remote_data.rst

+25
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Currently the following sources are supported:
2828
- :ref:`St.Louis FED (FRED)<remote_data.fred>`
2929
- :ref:`Kenneth French's data library<remote_data.ff>`
3030
- :ref:`World Bank<remote_data.wb>`
31+
- :ref:`OECD<remote_data.oecd>`
3132

3233
It should be noted, that various sources support different kinds of data, so not all sources implement the same methods and the data elements returned might also differ.
3334

@@ -340,3 +341,27 @@ errors to ignore or warn, won't stop failed responses. (ie, 100% bad
340341
indicators, or a single "bad" (#4 above) country code).
341342
342343
See docstrings for more info.
344+
345+
.. _remote_data.oecd:
346+
347+
OECD
348+
====
349+
350+
`OECD Statistics <http://stats.oecd.org/>`__ are avaliable via ``DataReader``.
351+
You have to specify OECD's data set code.
352+
353+
To confirm data set code, access to ``each data -> Export -> SDMX Query``. Following
354+
example is to download "Trade Union Density" data which set code is "UN_DEN".
355+
356+
357+
.. ipython:: python
358+
359+
import pandas_datareader.data as web
360+
import datetime
361+
362+
df = web.DataReader('UN_DEN', 'oecd', end=datetime.datetime(2012, 1, 1))
363+
364+
df.columns
365+
366+
df[['Japan', 'United States']]
367+

docs/source/whatsnew/v0.2.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ New features
2020
- Added latitude and longitude to output of wb.get_countries (:issue:`47`).
2121
- Extended DataReader to fetch dividends and stock splits from Yahoo (:issue:`45`).
2222
- Added get_available_datasets to famafrench (:issue:`56`).
23+
- ``DataReader`` now supports OECD data sources, see :ref:`here<remote_data.oecd>` (:issue:`101`).
2324

2425
.. _whatsnew_0170.api:
2526

pandas_datareader/data.py

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
from pandas_datareader.fred import _get_data as get_data_fred
2121
from pandas_datareader.famafrench import _get_data as get_data_famafrench
22+
from pandas_datareader.oecd import _get_data as get_data_oecd
23+
2224

2325
def DataReader(name, data_source=None, start=None, end=None,
2426
retry_count=3, pause=0.001):
@@ -82,6 +84,8 @@ def DataReader(name, data_source=None, start=None, end=None,
8284
return get_data_fred(name, start, end)
8385
elif data_source == "famafrench":
8486
return get_data_famafrench(name)
87+
elif data_source == "oecd":
88+
return get_data_oecd(name, start, end)
8589
else:
8690
raise NotImplementedError(
8791
"data_source=%r is not implemented" % data_source)

pandas_datareader/io/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from pandas_datareader.io.jsdmx import read_jsdmx

pandas_datareader/io/jsdmx.py

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# pylint: disable-msg=E1101,W0613,W0603
2+
3+
from __future__ import unicode_literals
4+
5+
import itertools
6+
import os
7+
import sys
8+
9+
import numpy as np
10+
import pandas as pd
11+
import pandas.compat as compat
12+
13+
from pandas_datareader.io.util import _read_content
14+
15+
16+
def read_jsdmx(path_or_buf):
17+
"""
18+
Convert a SDMX-JSON string to pandas object
19+
20+
Parameters
21+
----------
22+
filepath_or_buffer : a valid SDMX-JSON string or file-like
23+
http://sdmx.org/wp-content/uploads/2014/07/sdmx-json-data-message.pdf
24+
25+
Returns
26+
-------
27+
results : Series, DataFrame, or dictionaly of Series or DataFrame.
28+
"""
29+
30+
jdata = _read_content(path_or_buf)
31+
32+
try:
33+
import simplejson as json
34+
except ImportError:
35+
if sys.version_info[:2] < (2, 7):
36+
raise ImportError('simplejson is required in python 2.6')
37+
import json
38+
39+
if isinstance(jdata, dict):
40+
data = jdata
41+
else:
42+
data = json.loads(jdata, object_pairs_hook=compat.OrderedDict)
43+
44+
structure = data['structure']
45+
index = _parse_dimensions(structure['dimensions']['observation'])
46+
columns = _parse_dimensions(structure['dimensions']['series'])
47+
48+
dataset = data['dataSets']
49+
if len(dataset) != 1:
50+
raise ValueError("length of 'dataSets' must be 1")
51+
dataset = dataset[0]
52+
values = _parse_values(dataset, index=index, columns=columns)
53+
54+
df = pd.DataFrame(values, columns=columns, index=index)
55+
return df
56+
57+
58+
def _get_indexer(index):
59+
if index.nlevels == 1:
60+
return [str(i) for i in compat.range(len(index))]
61+
else:
62+
it = itertools.product(*[compat.range(len(level)) for level in index.levels])
63+
return [':'.join(map(str, i)) for i in it]
64+
65+
66+
def _parse_values(dataset, index, columns):
67+
size = len(index)
68+
series = dataset['series']
69+
70+
values = []
71+
# for s_key, s_value in compat.iteritems(series):
72+
for s_key in _get_indexer(columns):
73+
try:
74+
observations = series[s_key]['observations']
75+
observed = []
76+
for o_key in _get_indexer(index):
77+
try:
78+
observed.append(observations[o_key][0])
79+
except KeyError:
80+
observed.append(np.nan)
81+
except KeyError:
82+
observed = [np.nan] * size
83+
84+
values.append(observed)
85+
86+
return np.transpose(np.array(values))
87+
88+
89+
def _parse_dimensions(dimensions):
90+
arrays = []
91+
names = []
92+
for key in dimensions:
93+
values = [v['name'] for v in key['values']]
94+
95+
role = key.get('role', None)
96+
if role == 'time':
97+
values = pd.DatetimeIndex(values)
98+
99+
arrays.append(values)
100+
names.append(key['name'])
101+
midx = pd.MultiIndex.from_product(arrays, names=names)
102+
return midx
103+

pandas_datareader/io/tests/__init__.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"header":{"id":"aef8b006-de08-4263-9a26-0612a984c7c6","test":false,"prepared":"2014-08-30T09:50:48Z","sender":{"id":"OECD","name":"OECD"},"request":{"uri":"http://stats.oecd.org/SDMX-JSON/data/LAND_USE/JPN+USA/OECD"}},"dataSets":[{"action":"Informational","series":{"0:0":{"attributes":[0],"observations":{"0":[54610],"1":[54420],"2":[54260],"3":[54110],"4":[53960],"5":[53790],"6":[53580],"7":[53400],"8":[53170],"9":[52790],"10":[52430],"11":[52040],"12":[51650],"13":[51240],"14":[50830],"15":[50380],"16":[49940],"17":[49490],"18":[49050],"19":[48660],"20":[48300],"21":[47930],"22":[47630],"23":[47360],"24":[47140],"25":[46920],"26":[46710],"27":[46500],"28":[46280],"29":[46090],"30":[45930],"31":[45610]}},"0:1":{"attributes":[0],"observations":{"0":[14.909],"1":[14.853],"2":[14.817],"3":[14.776],"4":[14.796],"5":[14.753],"6":[14.692],"7":[14.646],"8":[14.583],"9":[14.479],"10":[14.38],"11":[14.273],"12":[14.166],"13":[14.054],"14":[13.941],"15":[13.818],"16":[13.701],"17":[13.578],"18":[13.457],"19":[13.35],"20":[13.251],"21":[13.15],"22":[13.067],"23":[12.993],"24":[12.933],"25":[12.872],"26":[12.815],"27":[12.757],"28":[12.697],"29":[12.645],"30":[12.601],"31":[12.513]}},"0:2":{"attributes":[0],"observations":{"0":[377800],"1":[377800],"2":[377800],"3":[377800],"4":[377800],"5":[377800],"6":[377800],"7":[377800],"8":[377800],"9":[377800],"10":[377800],"11":[377800],"12":[377800],"13":[377800],"14":[377800],"15":[377800],"16":[377800],"17":[377800],"18":[377800],"19":[377800],"20":[377800],"21":[377880],"22":[377890],"23":[377900],"24":[377910],"25":[377910],"26":[377920],"27":[377930],"28":[377940],"29":[377947],"30":[377950],"31":[377955]}},"0:3":{"attributes":[0],"observations":{"10":[249500],"11":[249426],"12":[249352],"13":[249278],"14":[249204],"15":[249130],"16":[249056],"17":[248982],"18":[248908],"19":[248834],"20":[248760],"21":[248878],"22":[248996],"23":[249114],"24":[249232],"25":[249350],"26":[249438],"27":[249526],"28":[249614],"29":[249702],"30":[249790],"31":[249878]}},"0:4":{"attributes":[0],"observations":{"10":[68.431],"11":[68.411],"12":[68.391],"13":[68.37],"14":[68.35],"15":[68.33],"16":[68.328],"17":[68.308],"18":[68.288],"19":[68.267],"20":[68.247],"21":[68.279],"22":[68.312],"23":[68.344],"24":[68.376],"25":[68.409],"26":[68.433],"27":[68.457],"28":[68.481],"29":[68.505],"30":[68.529],"31":[68.554]}},"0:5":{"attributes":[0],"observations":{"0":[366300],"1":[366400],"2":[366200],"3":[366200],"4":[364700],"5":[364600],"6":[364700],"7":[364600],"8":[364600],"9":[364600],"10":[364600],"11":[364600],"12":[364600],"13":[364600],"14":[364600],"15":[364600],"16":[364500],"17":[364500],"18":[364500],"19":[364500],"20":[364500],"21":[364500],"22":[364500],"23":[364500],"24":[364500],"25":[364500],"26":[364500],"27":[364500],"28":[364500],"29":[364500],"30":[364500],"31":[364500]}},"0:6":{"attributes":[0],"observations":{"0":[6000],"1":[6000],"2":[6000],"3":[6000],"4":[6000],"5":[5000],"6":[5000],"7":[5000],"8":[5000],"9":[4500],"10":[4500],"11":[4500],"12":[4500],"13":[4500],"14":[4500],"15":[4050],"16":[4050],"17":[4050],"18":[4050],"19":[4050],"20":[4280]}},"0:7":{"attributes":[0],"observations":{"0":[1.638],"1":[1.638],"2":[1.638],"3":[1.638],"4":[1.645],"5":[1.371],"6":[1.371],"7":[1.371],"8":[1.371],"9":[1.234],"10":[1.234],"11":[1.234],"12":[1.234],"13":[1.234],"14":[1.234],"15":[1.111],"16":[1.111],"17":[1.111],"18":[1.111],"19":[1.111],"20":[1.174]}},"0:8":{"attributes":[0],"observations":{"10":[58170],"11":[58634],"12":[59098],"13":[59582],"14":[60066],"15":[61040],"16":[61454],"17":[61978],"18":[62492],"19":[62956],"20":[63160],"21":[67692],"22":[67874],"23":[68026],"24":[68128],"25":[68230],"26":[68352],"27":[68474],"28":[68606],"29":[68708],"30":[68780],"31":[69012]}},"0:9":{"attributes":[0],"observations":{"10":[15.954],"11":[16.082],"12":[16.209],"13":[16.342],"14":[16.474],"15":[16.742],"16":[16.86],"17":[17.004],"18":[17.145],"19":[17.272],"20":[17.328],"21":[18.571],"22":[18.621],"23":[18.663],"24":[18.691],"25":[18.719],"26":[18.752],"27":[18.786],"28":[18.822],"29":[18.85],"30":[18.87],"31":[18.933]}},"1:0":{"attributes":[0],"observations":{"0":[1906240],"1":[1906240],"2":[1897990],"3":[1897990],"4":[1897990],"5":[1897990],"6":[1897990],"7":[1877760],"8":[1877760],"9":[1877760],"10":[1877760],"11":[1877760],"12":[1861800],"13":[1849480],"14":[1841390],"15":[1841390],"16":[1813060],"17":[1800920],"18":[1792820],"19":[1780680],"20":[1780680],"21":[1781000],"22":[1757070],"23":[1743640],"24":[1697560],"25":[1678150],"26":[1630413],"27":[1644800],"28":[1656635],"29":[1631396],"30":[1624330],"31":[1627625]}},"1:1":{"attributes":[0],"observations":{"0":[20.813],"1":[20.813],"2":[20.723],"3":[20.723],"4":[20.723],"5":[20.723],"6":[20.723],"7":[20.502],"8":[20.502],"9":[20.502],"10":[20.502],"11":[20.502],"12":[20.328],"13":[20.193],"14":[20.105],"15":[20.105],"16":[19.795],"17":[19.663],"18":[19.574],"19":[19.442],"20":[19.436],"21":[19.439],"22":[19.178],"23":[19.031],"24":[18.528],"25":[18.317],"26":[17.796],"27":[17.953],"28":[18.11],"29":[17.834],"30":[17.757],"31":[17.793]}},"1:2":{"attributes":[0],"observations":{"0":[9629090],"1":[9629090],"2":[9629090],"3":[9629090],"4":[9629090],"5":[9629090],"6":[9629090],"7":[9629090],"8":[9629090],"9":[9629090],"10":[9629090],"11":[9629090],"12":[9629090],"13":[9629090],"14":[9629090],"15":[9629090],"16":[9629090],"17":[9629090],"18":[9629090],"19":[9629090],"20":[9632030],"21":[9632030],"22":[9632030],"23":[9632030],"24":[9632030],"25":[9632030],"26":[9632030],"27":[9632030],"28":[9831510],"29":[9831510],"30":[9831510],"31":[9831510]}},"1:3":{"attributes":[0],"observations":{"10":[2963350],"11":[2967210],"12":[2971070],"13":[2974930],"14":[2978790],"15":[2982650],"16":[2986510],"17":[2990370],"18":[2994230],"19":[2998090],"20":[3001950],"21":[3005776],"22":[3009602],"23":[3013428],"24":[3017254],"25":[3021080],"26":[3024908],"27":[3028736],"28":[3032564],"29":[3036392],"30":[3040220],"31":[3044048]}},"1:4":{"attributes":[0],"observations":{"10":[32.355],"11":[32.397],"12":[32.439],"13":[32.481],"14":[32.523],"15":[32.565],"16":[32.608],"17":[32.65],"18":[32.692],"19":[32.734],"20":[32.766],"21":[32.807],"22":[32.849],"23":[32.891],"24":[32.933],"25":[32.974],"26":[33.016],"27":[33.058],"28":[33.152],"29":[33.194],"30":[33.236],"31":[33.278]}},"1:5":{"attributes":[0],"observations":{"0":[9158960],"1":[9158960],"2":[9158960],"3":[9158960],"4":[9158960],"5":[9158960],"6":[9158960],"7":[9158960],"8":[9158960],"9":[9158960],"10":[9158960],"11":[9158960],"12":[9158960],"13":[9158960],"14":[9158960],"15":[9158960],"16":[9158960],"17":[9158960],"18":[9158960],"19":[9158960],"20":[9161920],"21":[9161920],"22":[9161920],"23":[9161920],"24":[9161920],"25":[9161920],"26":[9161920],"27":[9161920],"28":[9147420],"29":[9147420],"30":[9147420],"31":[9147420]}},"1:6":{"attributes":[0],"observations":{"0":[2375390],"1":[2375390],"2":[2416000],"3":[2416000],"4":[2416000],"5":[2416000],"6":[2416000],"7":[2391720],"8":[2391720],"9":[2391720],"10":[2391720],"11":[2391720],"12":[2392490],"13":[2380000],"14":[2370000],"15":[2360000],"16":[2350000],"17":[2347930],"18":[2353060],"19":[2358190],"20":[2363310],"21":[2368440],"22":[2373570],"23":[2395610],"24":[2417650],"25":[2439690],"26":[2461735],"27":[2483776],"28":[2485000],"29":[2485000],"30":[2485000],"31":[2485000]}},"1:7":{"attributes":[0],"observations":{"0":[25.935],"1":[25.935],"2":[26.379],"3":[26.379],"4":[26.379],"5":[26.379],"6":[26.379],"7":[26.113],"8":[26.113],"9":[26.113],"10":[26.113],"11":[26.113],"12":[26.122],"13":[25.985],"14":[25.876],"15":[25.767],"16":[25.658],"17":[25.635],"18":[25.691],"19":[25.747],"20":[25.795],"21":[25.851],"22":[25.907],"23":[26.147],"24":[26.388],"25":[26.629],"26":[26.869],"27":[27.11],"28":[27.166],"29":[27.166],"30":[27.166],"31":[27.166]}},"1:8":{"attributes":[0],"observations":{"10":[1926130],"11":[1922270],"12":[1933600],"13":[1954550],"14":[1968780],"15":[1974920],"16":[2009390],"17":[2019740],"18":[2018850],"19":[2022000],"20":[2015980],"21":[2006704],"22":[2021682.3],"23":[2009242],"24":[2029456],"25":[2023000],"26":[2044864],"27":[2004608],"28":[1973221],"29":[1994632],"30":[1997870],"31":[1990747]}},"1:9":{"attributes":[0],"observations":{"10":[21.03],"11":[20.988],"12":[21.112],"13":[21.34],"14":[21.496],"15":[21.563],"16":[21.939],"17":[22.052],"18":[22.042],"19":[22.077],"20":[22.004],"21":[21.903],"22":[22.066],"23":[21.93],"24":[22.151],"25":[22.081],"26":[22.319],"27":[21.88],"28":[21.571],"29":[21.805],"30":[21.841],"31":[21.763]}}}}],"structure":{"uri":"http://stats.oecd.org/SDMX-JSON/dataflow/LAND_USE","name":"Land use","description":"Land use","dimensions":{"dataSet":[],"series":[{"keyPosition":0,"id":"COU","name":"Country","values":[{"id":"JPN","name":"Japan"},{"id":"USA","name":"United States"}],"role":"geo-iso3"},{"keyPosition":1,"id":"VAR","name":"Variable","values":[{"id":"ARABLE","name":"Arable land and permanent crops"},{"id":"ARABLE_P","name":"Arable and cropland % land area"},{"id":"AREA","name":"Total area"},{"id":"FOREST","name":"Forest"},{"id":"FOREST_P","name":"Forest % land area"},{"id":"LAND","name":"Land area"},{"id":"MEAD","name":"Permanent meadows and pastures"},{"id":"MEAD_P","name":"Meadows and pastures % land area"},{"id":"OTHER","name":"Other areas"},{"id":"OTHER_P","name":"Other % land area"}],"role":null}],"observation":[{"id":"TIME_PERIOD","name":"Year","values":[{"id":"1980","name":"1980"},{"id":"1981","name":"1981"},{"id":"1982","name":"1982"},{"id":"1983","name":"1983"},{"id":"1984","name":"1984"},{"id":"1985","name":"1985"},{"id":"1986","name":"1986"},{"id":"1987","name":"1987"},{"id":"1988","name":"1988"},{"id":"1989","name":"1989"},{"id":"1990","name":"1990"},{"id":"1991","name":"1991"},{"id":"1992","name":"1992"},{"id":"1993","name":"1993"},{"id":"1994","name":"1994"},{"id":"1995","name":"1995"},{"id":"1996","name":"1996"},{"id":"1997","name":"1997"},{"id":"1998","name":"1998"},{"id":"1999","name":"1999"},{"id":"2000","name":"2000"},{"id":"2001","name":"2001"},{"id":"2002","name":"2002"},{"id":"2003","name":"2003"},{"id":"2004","name":"2004"},{"id":"2005","name":"2005"},{"id":"2006","name":"2006"},{"id":"2007","name":"2007"},{"id":"2008","name":"2008"},{"id":"2009","name":"2009"},{"id":"2010","name":"2010"},{"id":"2011","name":"2011"}],"role":"time"}]},"attributes":{"dataSet":[],"series":[{"id":"TIME_FORMAT","name":"Time format","values":[{"id":"P1Y","name":"Annual"}],"role":null}],"observation":[]},"annotations":[{"title":"Copyright OECD - All rights reserved","uri":"","text":""},{"title":"Terms and Conditions","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_1899066_1_1_1_1,00.html","text":""},{"title":"Privacy Policy","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_1899048_1_1_1_1,00.html","text":""},{"title":"MyOECD","uri":"http://www.oecd.org/MyOECD/0,3359,en_17642234_17642806_1_1_1_1_1,00.html","text":""},{"title":"Contact Us","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_42516321_1_1_1_1,00.html","text":""}]}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"header":{"id":"10317b61-e1c6-4301-8750-0393e0bc330c","test":false,"prepared":"2014-08-30T07:46:14Z","sender":{"id":"OECD","name":"OECD"},"request":{"uri":"http://stats.oecd.org/SDMX-JSON/data/TOURISM_INBOUND/JPN/OECD?freq=A"}},"dataSets":[{"action":"Informational","series":{"0:0":{"attributes":[0],"observations":{"0":[616],"1":[653],"2":[812],"3":[942],"4":[1000],"5":[1006],"6":[1413],"7":[1043],"8":[1430]}},"0:1":{"attributes":[0],"observations":{"0":[300],"1":[299],"2":[352],"3":[432],"4":[550],"5":[450],"6":[509],"7":[365],"8":[482]}},"0:2":{"attributes":[0],"observations":{"0":[6138],"1":[6728],"2":[7334],"3":[8347],"4":[8351],"5":[6790],"6":[8611],"7":[6219],"8":[8368]}},"0:3":{"attributes":[0],"observations":{"0":[1550],"1":[1710],"2":[1330],"3":[1460],"4":[1430],"5":[1170],"6":[1350],"7":[1000],"8":[1300]}},"0:4":{"attributes":[0],"observations":{"0":[330],"1":[340],"2":[350],"3":[360],"4":[310],"5":[210],"6":[190],"7":[100],"8":[100]}},"0:5":{"attributes":[0],"observations":{"0":[1220],"1":[1370],"2":[980],"3":[1100],"4":[1120],"5":[960],"6":[1160],"7":[900],"8":[1200]}},"0:6":{"attributes":[0],"observations":{"0":[1588],"1":[1747],"2":[2117],"3":[2601],"4":[2382],"5":[1587],"6":[2440],"7":[1658],"8":[2044]}},"0:7":{"attributes":[0],"observations":{"0":[1081],"1":[1275],"2":[1309],"3":[1385],"4":[1390],"5":[1024],"6":[1268],"7":[994],"8":[1467]}},"0:8":{"attributes":[0],"observations":{"0":[760],"1":[822],"2":[817],"3":[816],"4":[768],"5":[700],"6":[727],"7":[566],"8":[717]}}}}],"structure":{"uri":"http://stats.oecd.org/SDMX-JSON/dataflow/TOURISM_INBOUND","name":"Inbound tourism","description":"Inbound tourism","dimensions":{"dataSet":[],"series":[{"keyPosition":0,"id":"COUNTRY","name":"Country","values":[{"id":"JPN","name":"Japan"}],"role":"geo-iso3"},{"keyPosition":1,"id":"VARIABLE","name":"Variable","values":[{"id":"CHN","name":"China"},{"id":"HKG","name":"Hong Kong, China"},{"id":"INB_ARRIVALS_TOTAL","name":"Total international arrivals"},{"id":"INB_RECEIPTS_TOTAL","name":"Total international receipts"},{"id":"INB_RECEIPTS_TRANSPORT","name":"International passenger transport receipts"},{"id":"INB_RECEIPTS_TRAVEL","name":"International travel receipts"},{"id":"KOR","name":"Korea"},{"id":"TWN","name":"Chinese Taipei"},{"id":"USA","name":"United States"}],"role":null}],"observation":[{"id":"TIME_PERIOD","name":"Year","values":[{"id":"2004","name":"2004"},{"id":"2005","name":"2005"},{"id":"2006","name":"2006"},{"id":"2007","name":"2007"},{"id":"2008","name":"2008"},{"id":"2009","name":"2009"},{"id":"2010","name":"2010"},{"id":"2011","name":"2011"},{"id":"2012","name":"2012"}],"role":"time"}]},"attributes":{"dataSet":[],"series":[{"id":"TIME_FORMAT","name":"Time format","values":[{"id":"P1Y","name":"Annual"}],"role":null}],"observation":[]},"annotations":[{"title":"Copyright OECD - All rights reserved","uri":"","text":""},{"title":"Terms and Conditions","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_1899066_1_1_1_1,00.html","text":""},{"title":"Privacy Policy","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_1899048_1_1_1_1,00.html","text":""},{"title":"MyOECD","uri":"http://www.oecd.org/MyOECD/0,3359,en_17642234_17642806_1_1_1_1_1,00.html","text":""},{"title":"Contact Us","uri":"http://www.oecd.org/document/0,3746,en_2649_201185_42516321_1_1_1_1,00.html","text":""}]}}

0 commit comments

Comments
 (0)