Google表格的API-无法获取数据

时间:2020-04-21 11:57:16

标签: google-apps-script google-sheets

我正在尝试通过API将数据提取到Google表格中,我能够获取“ NewConfirmed”和其他一些字段,但无法获取“ Countries”数据。请帮忙。

function Covid19() {
  
  // Call the COVID19 API
  var response = UrlFetchApp.fetch("https://api.covid19api.com/summary");
  
  // Parse the JSON reply
  var json=response.getContentText();
  var data=JSON.parse(json);
  var sheet = SpreadsheetApp.getActiveSheet();
  var i = 2;

  for each (var info in data)
    {
      sheet.getRange(i,1).setValue([info['NewConfirmed']]);
      sheet.getRange(i,2).setValue([info['Country']]);
     
      i = i + 1;
  }

1 个答案:

答案 0 :(得分:1)

如果您记录数据,则会看到

{Countries = [{CountryCode = AX,TotalRecovered = 0.0,NewDeaths = 0.0, Slug = ala-aland-islands,Country = ALA奥兰群岛,NewRecovered = 0.0, Date = 2020-04-21T12:32:01Z,NewConfirmed = 0.0,...

因此,要检索CountryNewConfirmed,您需要定义

var data=JSON.parse(json).Countries,然后您必须遍历循环中的所有条目。

基于您的代码的示例:

function Covid19() {
  var response = UrlFetchApp.fetch("https://api.covid19api.com/summary");
  var json=response.getContentText();
  var data=JSON.parse(json).Countries;
  var sheet = SpreadsheetApp.getActiveSheet();
  for(var i = 0; i < data.length; i++)
    {
      sheet.getRange(i+2,1).setValue([data[i]['NewConfirmed']]);
      sheet.getRange(i+2,2).setValue([data[i]['Country']]);
  }
}

旁注:

在每次使用getRange(...).setValue(..)时都非常实用 循环迭代。最好将数据写入数组,然后 完成后将包含所有数据的数组分配给工作表 迭代。