Я относительный новичок в JSON в целом, но у меня есть опыт работы с JSON с помощью инструментов командной строки на основе Linux в Python, как правило, в виде простого текста.
Я пытаюсь реализовать некоторые функции в Сценариях Служб Google. Метод связывается с API Qaundl и получает обратно некоторые данные, и из этих данных я хотел бы вернуть одно конкретное значение (цена «Close») в этом случае.
function CLOSE_PRICE(ticker,date) {
var options =
{
'muteHttpExceptions': true,
"headers":{"Accept":"application/json"}
};
var api_key = "some_api_key"
ticker = "HD"
date = "2017-12-28"
var url = "https://www.quandl.com/api/v3/datasets/EOD/" + ticker + ".json?start_date=" + date + "&end_date=" + date + "&api_key=" + api_key
var response = UrlFetchApp.fetch(url,options)
var json = response.getContentText();
var datum = JSON.parse(json)
var end_of_day_prices = datum.dataset.data;
Logger.log(end_of_day_prices);
var close = end_of_day_prices[4];
Logger.log(close);
return close;
}
Это данные JSON, которые я получаю обратно ... в довольно визуализированном формате для печати.
"dataset": {
"id": 42635437,
"dataset_code": "HD",
"database_code": "EOD",
"name": "Home Depot Inc. (The) (HD) Stock Prices, Dividends and Splits",
"description": "<p><b>Ticker</b>: HD</p>\n<p><b>Exchange</b>: NYSE</p>\n<p>Prices, dividends, splits for Home Depot Inc. (The) (HD).\n\n</p><p>Columns:</p>\n<p>Open, High, Low, Close, Volume are <b>unadjusted</b>.</p>\n<p>Dividend shows the <b>unadjusted</b> dividend on any ex-dividend date else 0.0.</p>\n<p>Split shows any split that occurred on a the given DATE else 1.0</p>\n<p>Adjusted values are adjusted for dividends and splits using the <a href="http://www.crsp.com/products/documentation/crsp-calculations">CRSP methodology</a>.</p>\n<p>Updates of this dataset occur at 5pm ET. Subsequent corrections from the exchange are applied at 9pm ET.</p>\n<p>Data is sourced from NASDAQ, NYSE and AMEX via <a href="http://www.quotemedia.com">Quotemedia</a>.</p>\n\n",
"refreshed_at": "2019-11-08 04:01:00 UTC",
"newest_available_date": "2017-12-28",
"oldest_available_date": "2013-09-01",
"column_names": [
"Date",
"Open",
"High",
"Low",
"Close",
"Volume",
"Dividend",
"Split",
"Adj_Open",
"Adj_High",
"Adj_Low",
"Adj_Close",
"Adj_Volume"
],
"frequency": "daily",
"type": "Time Series",
"premium": true,
"limit": null,
"transform": null,
"column_index": null,
"start_date": "2017-12-28",
"end_date": "2017-12-28",
"data": [
[
"2017-12-28",
190.91,
190.98,
189.64,
189.78,
3175631.0,
0.0,
1.0,
182.95836799845628,
183.02545241393943,
181.74126503183305,
181.8754338627994,
3175631.0
]
],
"collapse": null,
"order": null,
"database_id": 12910
}
}
Я не могу получить доступ к отдельным элементам массива dataset.data и не могу понять, почему. Вот консоль регистрации Google Apps Script, показывающая мои строки журнала.
Я почти уверен, что не понимаю какой-либо аспект скрипта Google Apps или модель данных JSON. Спасибо за помощь.