【问题标题】:How to dictionary in this case with GAS?在这种情况下如何用 GAS 字典?
【发布时间】:2016-08-18 03:02:41
【问题描述】:

我是新手,非本地人...

function fetch_json() {
  var result = UrlFetchApp.fetch("https://api.ookami.me/v1/news/public?sport_id=1");
  var obj = JSON.parse(result.getContentText());
  var ss = SpreadsheetApp.openById("1ecv2r3qBEuHWyP4XH7FkGktQ7YHqegd7CztRoARzKac");
  var sheet = ss.getSheetByName("soccer");

  for (var n=0; n < 10; n++) {
    var news = json["news"][n];
    var a = news["id"];
    var b = news["title"];
    var c = news["summary"];
    var d = news["media_name"];
    var e = news["url"];
    var f = news["image"];
    var array = [a, b, c, d, e, f];

    var columnA = sheet.getRange(2, 1);
    var valuesA = columnA.getValues();
    var maxid = valuesA[0][0];

    if (a > maxid) {
      sheet.appendRow(array);
    }else{
      break
    }
    sheet.setColumnWidth(6, 120);
    var last_row = sheet.getLastRow();
     if (f != null) {
       var cell = sheet.getRange(last_row, 6);
       var image_cell = "=IMAGE(\"" + f + "\", 1)";
       cell.setValue(image_cell);
       sheet.setRowHeight(last_row, 72);
  }else{
    sheet.setRowHeight(last_row, 72);
  }
  }
    sheet.autoResizeColumn(1);
    sheet.sort(1, false);
}

这是一个完整的代码。我想通过使用其他 url 对其他工作表简单地运行相同的功能。

var result= UrlFetchApp.fetch("https://api.ookami.me/v1/news/public?sport_id=1");

“sport_id=1”→“sport_id=2”、“sport_id=3”...“sport_id=37”。 和

var sheet = ss.getSheetByName("soccer");

“足球”→“棒球”、“网球”...“体育商业”(37 张)。 棒球:2(id), 网球:3..., sportsbusiness:37

我是这样想的

function a () {
    //I don't know the code I want to write 

  function fetch_json ()
}

有可能吗? 关于“字典”的方法我不懂,如果有其他方法,请教我。

【问题讨论】:

    标签: javascript arrays dictionary google-apps-script google-sheets


    【解决方案1】:

    如果我理解正确,您希望从不同的 url 获取数据,并将数据写入基于运动的同一个电子表格中的不同工作表。我会首先为所有运动定义一个对象:

    var sportIds = {
      0: 'soccer',
      1: 'baseball',
      2: 'tennis',
      ...
      36: 'sportsbusiness'
    };
    

    在上述对象中,键是 URL 中的 ID,值是工作表名称。然后,您可以遍历对象并使用以下方式抓取/写入数据:

    var urlBase = "https://api.ookami.me/v1/news/public?sport_id=";
    for (var id in sportIds){
      var url = urlBase+id; // Generate the url using the id/key from the object
      var result = UrlFetchApp.fetch(url);
      var sheet = ss.getSheetByName(sportIds[id]);
      // write to the sheet as desired
    }
    

    在这里,您使用对象中的键生成 url,并使用相应的值获取要写入的工作表。似乎应该这样做。如果这不是您想要的,请发表评论。

    【讨论】:

    • 我会写!谢谢!
    猜你喜欢
    • 2023-04-02
    • 2021-11-28
    • 2022-01-23
    • 2015-11-30
    • 2017-05-16
    • 2012-10-06
    • 2011-05-18
    • 2019-11-29
    • 2022-01-23
    相关资源
    最近更新 更多