From d1528a66f022718f2845c4677f1bfa01efb7bb6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org> Date: Tue, 28 Jan 2020 16:18:03 +0100 Subject: [PATCH] quick fix: get_dataset.m --- get_dataset.m | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/get_dataset.m b/get_dataset.m index 4cff257..583e41f 100644 --- a/get_dataset.m +++ b/get_dataset.m @@ -1,22 +1,15 @@ function [dd, dat] = get_dataset(provider,dataset, varargin) -if varargin > 0 - options = parse_options(varargin) +if numel(varargin) > 0 + options = parse_options(varargin); else options = ['?limit=1000&offset=0&q=&observations=1&align_periods=1&' ... - 'dimensions={}'] + 'dimensions={}']; end -% https://api.db.nomics.world/v22/series/AMECO/UVGD?limit=1000&offset=0&q=&observations=1&align_periods=1&dimensions=%7B%7D -%url = join(['https://api.db.nomics.world/v22/series/', provider, '/',... -% dataset ]) -%url = url + options -%json = urlread(join(url)) -%save test json -f = fopen("test_dataset.json"); -json = fgets(f); -fclose(f); -dat = jsondecode(json); +default_api_base_url = 'https://api.db.nomics.world/v22/series/'; +url = join([default_api_base_url, provider, '/', dataset, options]); +dat = webread(join(url)); docs = dat.series.docs; -nseries = length(docs); +nseries = dat.dataset.nb_series; nrow = 1; for id = 1:nseries nrow = nrow + length(docs(id).period); @@ -77,27 +70,27 @@ for i = 1:nseries end function options_str = parse_options(arguments) -i = 1 -options = struct() +i = 1; +options = struct(); options.limit = 1000; -options.dimensions = '{}' -options.mask = '' +options.dimensions = '{}'; +options.mask = ''; while i <= length(arguments) if arguments{1} == 'limit' - options.limit = arguments{2} - i = i + 2 + options.limit = arguments{2}; + i = i + 2; elseif arguments{1} == 'dimensions' if ~isempty(options.mask) - error('rdb: you can''t use both option dimension and option mask') + error('rdb: you can''t use both option dimension and option mask'); end elseif arguments =='mask' if options.dimensions ~= '{}' - error('rdb: you can''t use both option dimension and option mask') + error('rdb: you can''t use both option dimension and option mask'); end - options.mask = arguments{2} - i = i+2 + options.mask = arguments{2}; + i = i+2; else - disp_usage() + disp_usage(); end end -- GitLab