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