Poloniex APi 到 Google Sheet CSV 通过 Json

Poloniex APi to Google Sheet CSV via Json

我有以下脚本从 Poloniex JSON 输出中提取密钥,但不会将与密钥对应的实际数据放入实际 sheet...仅将键作为标题放在 sheet.

的顶部

我是 API 和 GAS 以及一般编码的新手,所以我确信我遗漏了一些非常明显的东西,如果你能指出,我将不胜感激什么。

提前致谢

function Bitcoin_fromPolo_toCSV() {
  //Link the script with a spreasdsheet using the identifier found in the spreadsheet url
  var ss = SpreadsheetApp.openById('1cubxxxxxxxxxxxxjDqM');
  var APIPullSheet = ss.getSheetByName("APIPull");


    // Clear Columns A,B,C,D
  APIPullSheet.getRange('A2:D19999').clearContent();


  var url = "https://poloniex.com/public?command=returnChartData&currencyPair=BTC_ETH&start=1502344800&end=9999999999&period=14400";

  //Fetch pulls data from URL

  var responseAPI = UrlFetchApp.fetch(url);


  //Parse that JSON
  var parcedData = JSON.parse(responseAPI.getContentText());


  //Break that Parsed data into fields
  //Define the 'stats' array, and populate it from the parced data pulled
  // for loop iterates over each 'key' in 'parcedData' pushing that data to 'stats'


  var stats = [];
  stats.push(['date','high', 'low', 'open', 'close', 'volume', 'quoteVolume', 'weightedAverage']);


  for(var key in parcedData.stats)
  {
    stats.push(parcedData.stats[key]); 
  }


  statsRange = APIPullSheet.getRange(1, 1, stats.length, 8);
  statsRange.setValues(stats);

}

下面的修改怎么样?

修改点:

JSON来自URL的数据如下

[
  {
    "date": 1502352000,
    "high": 0.0899,
    "low": 0.08754124,
    "open": 0.08795499,
    "close": 0.08988724,
    "volume": 1390.47552953,
    "quoteVolume": 15727.49124739,
    "weightedAverage": 0.08841051
  },
.
.

]

parcedData 没有 stats 作为键。

创建数据的流程:

  1. 外部 forEach()parcedData 中检索一个元素。
  2. 内部 forEach()stats[0] 中检索每个键,并使用键从 parcedData 的元素中检索数据。
  3. 检索到的数据被导入到 temp,这是一维数组。
  4. temp 被导入到 stats ,这是一个二维数组。在此之后,temp 被初始化。

反映这一点的脚本如下。

修改脚本:

function Bitcoin_fromPolo_toCSV() {
  var ss = SpreadsheetApp.openById('1cubxxxxxxxxxxxxjDqM');
  var APIPullSheet = ss.getSheetByName("APIPull");
  APIPullSheet.getRange('A2:D19999').clearContent();
  var url = "https://poloniex.com/public?command=returnChartData&currencyPair=BTC_ETH&start=1502344800&end=9999999999&period=14400";
  var responseAPI = UrlFetchApp.fetch(url);
  var parcedData = JSON.parse(responseAPI.getContentText());
  var stats = [];
  stats.push(['date','high', 'low', 'open', 'close', 'volume', 'quoteVolume', 'weightedAverage']);

  parcedData.forEach(function(e1){
    var temp = [];
    stats[0].forEach(function(e2){
      temp.push(e1[e2])
    });
    stats.push(temp); 
  });

  statsRange = APIPullSheet.getRange(1, 1, stats.length, 8);
  statsRange.setValues(stats);
}

结果:

如果我误解了你的问题,我很抱歉。