繁体   English   中英

API 不会返回数据(Google Sheets / App Script)

[英]API won't return data (Google Sheets / App Script)

我相信问题出在用于创建table.pushvar 的定义中,对于正确的数据路径, var diavar mesvar anovar horavar minuto的定义也是如此?

function CartolaPrazo() {
  var url = 'https://api.cartolafc.globo.com/mercado/status';
  var response = UrlFetchApp.fetch(url);
  var results = JSON.parse(response.getContentText());
  console.log(response)
  
  var table = [['dia','mês','ano','hora','minuto']];
  for (var i = 0; i < results.length; i++) {
    var r = results[i];
    var dia = r.fechamento.dia;
    var mes = r.fechamento.mes;
    var ano = r.fechamento.ano;
    var hora = r.fechamento.hora;
    var minuto = r.fechamento.minuto;
    table.push([dia,mes,ano,hora,minuto]);
  }

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 22, table.length, table[0].length).setValues(table);
}

在此处输入图片说明

您需要运行console.log(results)而不是console.log(response)

response包含一个HTTPResponse对象,控制台将其显示为{}

  • 您没有一组 json 对象,而只有一个 json 对象。 因此,代码中的循环是不必要的,但也是错误的,因为results.lengthnull
  • 结果,您将只获得一行数据。

假设您正在使用的url是您想要获得的,这将为您提供预期的结果:

function CartolaPrazo() {
  var url = 'https://api.cartolafc.globo.com/mercado/status';
  var response = UrlFetchApp.fetch(url);
  var results = JSON.parse(response.getContentText());
  var table = [['dia','mês','ano','hora','minuto']];
  var dia = results.fechamento.dia;
  var mes = results.fechamento.mes;
  var ano = results.fechamento.ano;
  var hora = results.fechamento.hora;
  var minuto = results.fechamento.minuto;
  table.push([dia,mes,ano,hora,minuto]);

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 22, table.length, table[0].length).setValues(table);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM