Google脚本,来自获取API的空数组

时间:2017-10-26 11:33:23

标签: arrays json google-apps-script

我试图从etherscan.io网站上获取我的ETH余额和交易,而我试图使用我之前用于其他网站的相同代码。但它似乎给我一个空数组,并且错误"范围的坐标或尺寸无效。" 这是代码:

function getTx() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  var url = 'http://api.etherscan.io/api?module=account&action=txlist&address=0x49E81AA0cFE7eeA9738430212DC6677acF2f01a1&sort=asc';
  var json = UrlFetchApp.fetch(url).getContentText();
  var data = JSON.parse(json);

  var rows = [],
      array;

  for (i = 0; i < data.length; i++) {
    array = data[i];
    rows.push([array.timeStamp, array.from, array.to, array.value]); 
  }
  Logger.log(rows)

  askRange = sheet.getRange(3, 1, rows.length, 3);
  askRange.setValues(rows);  

}

记录的&#34;行&#34;是空的,我做错了什么? 谢谢

1 个答案:

答案 0 :(得分:0)

以下修改怎么样?

修改要点:

  1. 您需要data.result
  2. 的数据
  3. 数据列数为4.
  4. 修改后的脚本:

    function getTx() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
      var url = 'http://api.etherscan.io/api?module=account&action=txlist&address=0x49E81AA0cFE7eeA9738430212DC6677acF2f01a1&sort=asc';
      var json = UrlFetchApp.fetch(url).getContentText();
      var data = JSON.parse(json);
      var rows = [],
          array;
      for (i = 0; i < data.result.length; i++) { // Modified
        array = data.result[i];
        rows.push([array.timeStamp, array.from, array.to, array.value]); 
      }
      Logger.log(rows)
      askRange = sheet.getRange(3, 1, rows.length, 4); // Modified
      askRange.setValues(rows);  
    }
    

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