我通常是JSON的相对新手,但是有使用Python中基于Linux的命令行工具处理JSON的经验,通常以粗文本格式进行。
我正在尝试在Google Apps脚本中实现某些功能。该方法联系Qaundl API并接收一些数据,在这种情况下,我想返回该数据中的一个特定值(“收盘价”)。
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脚本的记录器控制台,向我显示我的日志行。
我敢肯定,我不了解Google Apps脚本或JSON数据模型的某些方面。谢谢您的帮助。