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

Это полный код. Я хочу использовать ту же функцию просто для других листов, используя другой 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"); 

"футбол" → "бейсбол", "теннис" ... "sportsbusiness" (37 листов). бейсбол: 2 (идентификатор), теннисный корт: 3 ..., sportsbusiness: 37

И я представляю, как этот

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

    function fetch_json() 
} 

Возможно ли это? Я не понимаю о методе «словаря», поэтому, если есть другие способы, PLZ научить меня.

ответ

1

Если я правильно понимаю, вы хотите получать данные из разных URL-адресов и записывать данные на разные листы в одной и той же электронной таблице, основанной на спорте. Я бы сначала определить объект для всех видов спорта:

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

В вышеуказанном объекте, ключи идентификаторы в вашей URL и значения являются именами листов. Затем, вы можете петлю через объект и захват/записи данных, используя что-то вроде:

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

Смежные вопросы