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(ID)、テニス:3 ...、sportsbusiness:この

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

    function fetch_json() 
} 

のような37

そして、私は想像するが、それは可能ですか? 私は "辞書"の方法について理解していないので、他の方法があれば、plzは教えてくれます。

答えて

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を生成し、対応する値を使用して、あなたが書きたいシートを得る:次に、あなたは、オブジェクトとグラブをループ/のようなものを使用してデータを書き込むことができます。それはそうするべきだと思われる。これがあなたが探しているものでない場合は、ご意見ください。

+0

書くことができました!ありがとう! – user6725119

関連する問題