通过Json将Poloniex APi发布到Google Sheet CSV

时间:2017-09-14 06:17:43

标签: json google-sheets poloniex

我有以下脚本从Poloniex JSON输出中提取密钥,但是没有将与密钥对应的实际数据放入实际工作表中...它只将密钥作为标题在表格的顶部。

我是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);

}

1 个答案:

答案 0 :(得分:1)

以下修改怎么样?

修改要点:

来自URL的JSON数据如下。

[
  {
    "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被初始化。
  5. 脚本反映如下。

    修改后的脚本:

    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);
    }
    

    结果:

    enter image description here

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