Google App Script - вывод проблем и анализ данных - PullRequest
1 голос
/ 02 июля 2019

Я использую скрипт приложения Google для извлечения данных в отношении наших устройств Chrome Book, все работает нормально, кроме случаев, когда я пытаюсь опросить "cpuStatusReports"

Если я использую

cputemp = JSON.stringify(chromebooks[i].cpuStatusReports)
Logger.log(cputemp);

вывод, который я получаю, это

[{"cpuUtilizationPercentageInfo": [23,16,12,18,15,12,18,15,20,16], "cpuTemperaInfo": [{ "температура": 43, "метка": "soc_dts0 \ п"}, { "температура": 43, "метка": "soc_dts1 \ п"}], "reportTime": "2019-06-24T11:53: 24.973Z "}, {" cpuUtilizationPercentageInfo ": [45]," cpuTemperatureInfo ": [{" температура ": 33," метка ":" soc_dts0 \ п "}, {" температура ": 34," метка ":"soc_dts1 \ п"}], "reportTime": "2019-06-25T12: 43: 40.826Z"}, { "cpuUtilizationPercentageInfo": [12], "cpuTemperatureInfo": [{ "температура": 42, "метка": "soc_dts0 \ п"}, { "температура": 42, "метка": "soc_dts1 \ п"}], "reportTime": "2019-06-25T14: 01: 47.016Z"}, { "cpuUtilizationPercentageInfo":[27], "cpuTemperatureInfo": [{ "температура": 29, "метка": "soc_dts0 \ п"}, { "температура": 30, "метка": "soc_dts1 \ п"}], "reportTime":«2019-06-26T07: 59: 40.739Z "}, {" cpuUtilizationPercentageInfo ": [12,12,7,8,3,4,14,13,27,12]," cpuTemperatureInfo ": [{" температура ": 45," метка ":" soc_dts0 \n "}, {" температура ": 46," метка ":" soc_dts1 \ n "}]," reportTime ":" 2019-06-26T10: 59: 41.370Z "}]

Как я могу разделить это?в частности, я после поля "cpuTengthInfo"?Если кто-то может предоставить рабочий пример, я могу использовать его для Diskreport, а также выводить его в том же формате.

Спасибо за вашу помощь!

ОБНОВЛЕНИЕ: ** Полный кодфункции

function chromebookdetails2() {
var domain, chromebooks, page, ss, sheet, pageToken, i
var sheetData4 = onSheet.getSheetByName("chromebook")
//sheetData4.clear();
domain = "my domain here"
chromebooks= new Array()
do{
page = AdminDirectory.Chromeosdevices.list("my_customer",
{domain: domain,
maxResults: 1000,
pageToken: pageToken
}) 
for (i in page.chromeosdevices){
chromebooks.push(page.chromeosdevices[i])
}
pageToken = page.nextPageToken
}while(pageToken){
var row = 3 //starting row position
for (var i = 0; i < chromebooks.length; i++) {
var sheetData4 = onSheet.getSheetByName("chromebook") 
/////////////////////Header////////////////////////////////////////
var date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
sheetData4.getRange(1,1).setValue("Date Ran - "+date); //(2,1 means 2nd row, 1st column)
sheetData4.getRange(2,1).setValue("orgUnitPath"); //(2,1 means 2nd row, 1st column)
sheetData4.getRange(2,2).setValue("annotatedUser");
sheetData4.getRange(2,3).setValue("annotatedLocation");
sheetData4.getRange(2,4).setValue("annotatedAssetId");
sheetData4.getRange(2,5).setValue("serialNumber");
sheetData4.getRange(2,6).setValue("lastEnrollmentTime");
sheetData4.getRange(2,7).setValue("deviceId");
sheetData4.getRange(2,8).setValue("bootMode");
sheetData4.getRange(2,9).setValue("recentUsers");
sheetData4.getRange(2,10).setValue("macAddress");
sheetData4.getRange(2,11).setValue("lastSync");
sheetData4.getRange(2,12).setValue("osVersion");
sheetData4.getRange(2,13).setValue("platformVersion");
sheetData4.getRange(2,14).setValue("activeTimeRanges");
sheetData4.getRange(2,15).setValue("model");
sheetData4.getRange(2,16).setValue("etag");
sheetData4.getRange(2,17).setValue("firmwareVersion");
sheetData4.getRange(2,18).setValue("status");
sheetData4.getRange(2,19).setValue("ethernetMacAddress");
sheetData4.getRange(2,20).setValue("notes"); 
sheetData4.getRange(2,21).setValue("systemRamTotal");
sheetData4.getRange(2,22).setValue("CPU");  

if(chromebooks[i].length == 0){
    // array is empty 
Logger.log('empty'); 
   } else {
//array not empty
Logger.log('not empty');
      cputemp = JSON.stringify(chromebooks[i].cpuStatusReports)
    Logger.log(cputemp); 
/////////////////////Array Data///////////////////////////////////     
sheetData4.getRange(row,1).setValue(chromebooks[i].orgUnitPath);
sheetData4.getRange(row,2).setValue(chromebooks[i].annotatedUser);
sheetData4.getRange(row,3).setValue(chromebooks[i].annotatedLocation);
sheetData4.getRange(row,4).setValue(chromebooks[i].annotatedAssetId);
sheetData4.getRange(row,5).setValue(chromebooks[i].serialNumber);
sheetData4.getRange(row,6).setValue(chromebooks[i].lastEnrollmentTime);
sheetData4.getRange(row,7).setValue(chromebooks[i].deviceId);
sheetData4.getRange(row,8).setValue(chromebooks[i].bootMode);
sheetData4.getRange(row,9).setValue(chromebooks[i].recentUsers);
sheetData4.getRange(row,10).setValue(chromebooks[i].macAddress);
sheetData4.getRange(row,11).setValue(chromebooks[i].lastSync);
sheetData4.getRange(row,12).setValue(chromebooks[i].osVersion);
sheetData4.getRange(row,13).setValue(chromebooks[i].platformVersion);
sheetData4.getRange(row,14).setValue(chromebooks[i].activeTimeRanges);
sheetData4.getRange(row,15).setValue(chromebooks[i].model);
sheetData4.getRange(row,16).setValue(chromebooks[i].etag);
sheetData4.getRange(row,17).setValue(chromebooks[i].firmwareVersion);
sheetData4.getRange(row,18).setValue(chromebooks[i].status);
sheetData4.getRange(row,19).setValue(chromebooks[i].ethernetMacAddress);
sheetData4.getRange(row,20).setValue(chromebooks[i].notes);
sheetData4.getRange(row,21).setValue(chromebooks[i].systemRamTotal / (1024*1024) /1024); // "/ (1024*1024)" converts bytes to Mb "/1024" then converts back to Gb
//sheetData4.getRange(row,22).setValue(placeholder for cpu temp results));
   }
row++
Logger.log(row)
}
}
}

1 Ответ

0 голосов
/ 02 июля 2019

Попробуйте:

cputemp =(chromebooks[i].cpuStatusReports).toString().split(","); 
Logger.log(cputemp);
for (var j in cputemp) 
{ 
 var element = cputemp[j];
 Logger.log(element); 
}

Теперь вы можете увидеть, в какой j есть нужная вам запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...