2017-10-14 2 views
0

Ich habe verschiedene (JSON) API-Datenquellen, die ich an ein Google-Blatt zur Analyse anhängen möchte - idealerweise jede Stunde oder zwei neben einem Zeitstempel laufen.Neue API-Daten an Google-Blatt anhängen

Ich habe die Quelle formatiert und ich habe gefunden, wie man Auslöser in Google-Blättern verwendet, um es alle x-Stunden laufen zu lassen - es ist das anhängende Bit, mit dem ich kämpfe. Ich schätze, ich brauche Code, um herauszufinden, wo die letzte Zeile oder Spalte ist und fügen Sie eine für den nächsten Anhang hinzu?

In Bezug auf die Datenquelle und als Beispiel dafür ich diesen Code verwende: http://blog.fastfedora.com/projects/import-json#ImportJSON und einer meiner Datenquellen (reddit) als solche ausgezogen:

=ImportJSON("http://reddit.com/r/redditdev/about.json", "/data/url,/data/subscribers", "") 

Dieses eine Ausgabe gibt als folgt:

Url   TimeStamp    Subscribers 
/r/redditdev/ 14/10/2017 11:00:00 12114  
/r/redditdev/ 14/10/2017 12:00:00 12118 
/r/<others> x      y   
:

Subscribers Url 
12114  /r/redditdev/ 

Was ich am Ende Ausgabe aussehen möchten

Jede Hilfe wird geschätzt! Danke

Antwort

0

Ich schrieb ein wenig reddit Crawler eine kleine Weile zurück. Scheint, wie es hier hilfreich sein würde: github

Aber es ein bisschen anpassen zu tun genau das, was Sie suchen:

var date = Utilities.formatDate(new Date(), "America/Los_Angeles", "dd/MM/yyyy HH:mm:ss"); 
var subs = json_twoDarray[1][0], //first index is row, second is column 
    url = json_twoDarray[1][1]; 
//Assuming there's a "sheet" variable for the sheet you are logging data to, 
//get one past the last row and the first three columns and set the values 
sheet.getRange(sheet.getLastRow + 1, 1, 1, 3).setValues([[url, date, subs]]); 

ich in der Regel auch neue Daten an die Spitze der Tabelle hinzugefügt, so dass die die neuesten Daten werden zuerst präsentiert, was normalerweise ziemlich nett ist. Wenn Sie tun wollte, dass Sie die letzte Zeile des Snippets oben verändern könnte:

sheet.insertRowBefore(2); //Assuming the first row is headers, insert a new second row 
sheet.getRange(2,1,1,3).setValues([[url, date, subs]]); //add the data 

ich hatte keine Chance einen dieser Schnipsel zu testen, aber sollten sie arbeiten. Lassen Sie es mich wissen, wenn Sie Probleme haben.