2

我是新手和非本地...如何在这种情况下用GAS词典?

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

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

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

“英式足球” → “棒球”, “网球” ... “sportsbusiness”(37张)。 棒球:2(ID),网球:3 ...,sportsbusiness:37

我想像这样

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

    function fetch_json() 
} 

这可能吗? 我不明白“字典”的方法,所以如果还有其他方法,请教我。

回答

1

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

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和你想写片获得使用相应的值。这似乎应该这样做。请评论,如果这不是你要找的。

+0

我可以写!谢谢! – user6725119