来自Quandl API的Google Apps脚本解析JSON响应-由于“未定义”,因此无法访问特定的数组索引作为响应

我通常是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脚本的记录器控制台,向我显示我的日志行。

来自Quandl API的Google Apps脚本解析JSON响应-由于“未定义”,因此无法访问特定的数组索引作为响应

我敢肯定,我不了解Google Apps脚本或JSON数据模型的某些方面。谢谢您的帮助。

yg1438 回答:来自Quandl API的Google Apps脚本解析JSON响应-由于“未定义”,因此无法访问特定的数组索引作为响应

对我的问题的第一条评论给出了答案。

var close = end_of_day_prices[0][4];

是访问所需数据的正确方法。

本文链接:https://www.f2er.com/3135889.html

大家都在问