Получение ошибки в Google App Script для извлечения данных из JSON API Webservice и записи их в электронную таблицу Google

Я пытаюсь получить данные с помощью Google App Script из веб-службы через API в формате json и записать их в свою электронную таблицу Google, но получаю сообщение об ошибке: «Количество строк в диапазоне должно быть не менее 1. (строка 22)"

Я получил скрипт из поиска Google, который я написал в редакторе скриптов листов Google и дал все разрешения. Может кто-нибудь, пожалуйста, скажите мне, как пройти мимо ошибки?

Спасибо

// Taken from here --> https://gist.github.com/varun-raj/5350595a730a62ca1954

function pullJSON() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  var sheet = ss.getActiveSheet();

  var url="https://cricapi.com/api/fantasySummary?apikey=apikey"; // Paste your JSON URL here

  var response = UrlFetchApp.fetch(url); // get feed
  var dataAll = JSON.parse(response.getContentText()); //
  var dataSet = dataAll;

  var rows = [],
      data;

  for (i = 0; i < dataSet.length; i++) {
    data = dataSet[i];
    rows.push([data.data, data.team, data.players, data.name]); //your JSON entities here
  }

  dataRange = sheet.getRange(1, 1, rows.length, 4); // 4 Denotes total number of entites
  dataRange.setValues(rows);

}

Ниже приведено значение ответа

{"dateTimeGMT":"2019-05-14T12:00:00.000Z","data":{"fielding":[{"title":"Fielding for Pakistan Innings","scores":[{"name":"CR Woakes","runout":0,"stumped":0,"bowled":2,"lbw":0,"catch":1,"pid":"247235"},{"name":"Chris Jordan","runout":0,"stumped":0,"bowled":0,"lbw":0,"catch":1,"pid":288992},{"name":"JJ Roy","runout":0,"stumped":0,"bowled":0,"lbw":0,"catch":1,"pid":"298438"},{"name":"JE Root","runout":0,"stumped":0,"bowled":0,"lbw":0,"catch":1,"pid":"303669"},{"name":"DJ Willey","runout":0,"stumped":0,"bowled":1,"lbw":0,"catch":1,"pid":"308251"},{"name":"TK Curran","runout":1,"stumped":0,"bowled":1,"lbw":1,"catch":0,"pid":"550235"}]},{"title":"Fielding for England Innings","scores":[{"name":"Asif Ali","runout":0,"stumped":0,"bowled":0,"lbw":0,"catch":1,"pid":"494230"},{"name":"Junaid Khan","runout":0,"stumped":0,"bowled":1,"lbw":0,"catch":0,"pid":"259551"},{"name":"Babar Azam","runout":0,"stumped":0,"bowled":0,"lbw":0,"catch":1,"pid":"348144"},{"name":"Shaheen Shah Afridi","runout":1,"stumped":0,"bowled":0,"lbw":0,"catch":0,"pid":"1072470"}]}],"bowling":[{"scores":[{"6s":1,"4s":9,"0s":28,"Econ":"6.70","W":"4","R":"67","M":"0","O":"10","bowler":"CR Woakes","pid":"247235"},{"6s":3,"4s":10,"0s":26,"Econ":"8.60","W":"1","R":"86","M":"0","O":"10","bowler":"DJ Willey","pid":"308251"},{"6s":1,"4s":1,"0s":14,"Econ":"5.33","W":"0","R":"32","M":"0","O":"6","bowler":"MM Ali","pid":"8917"},{"6s":0,"4s":5,"0s":20,"Econ":"6.11","W":"1","R":"55","M":"0","O":"9","bowler":"LE Plunkett","pid":"19264"},{"6s":2,"4s":7,"0s":21,"Econ":"7.40","W":"2","R":"74","M":"0","O":"10","bowler":"TK Curran","pid":"550235"},{"6s":0,"4s":3,"0s":3,"Econ":"8.50","W":"0","R":"34","M":"0","O":"4","bowler":"BA Stokes","pid":"311158"},{"6s":0,"4s":1,"0s":1,"Econ":"9.00","W":"0","R":"9","M":"0","O":"1","bowler":"JL Denly","pid":"12454"}],"title":"Bowling To Pakistan Innings"},{"scores":[{"6s":3,"4s":5,"0s":24,"Econ":"7.12","W":"1","R":"57","M":"0","O":"8","bowler":"Junaid Khan","pid":"259551"},{"6s":3,"4s":11,"0s":25,"Econ":"8.30","W":"0","R":"83","M":"0","O":"10","bowler":"Shaheen Shah Afridi","pid":"1072470"},{"6s":0,"4s":8,"0s":20,"Econ":"6.87","W":"0","R":"55","M":"0","O":"8","bowler":"Hasan Ali","pid":"681305"},{"6s":4,"4s":2,"0s":15,"Econ":"8.28","W":"1","R":"58","M":"0","O":"7","bowler":"Imad Wasim","pid":"227758"},{"6s":4,"4s":7,"0s":28,"Econ":"8.33","W":"1","R":"75","M":"0","O":"9","bowler":"Faheem Ashraf","pid":"681117"},{"6s":2,"4s":0,"0s":3,"Econ":"9.50","W":"0","R":"19","M":"0","O":"2","bowler":"Haris Sohail","pid":"318788"},{"6s":0,"4s":1,"0s":0,"Econ":"10.80","W":"0","R":"9","M":"0","O":"0.5","bowler":"Asif Ali","pid":"494230"}],"title":"Bowling To England Innings"}],"batting":[{"scores":[{"dismissal-by":{"name":"TK Curran","pid":"550235"},"dismissal":"bowled","SR":115,"6s":1,"4s":16,"B":131,"R":151,"dismissal-info":" b Curran","batsman":"Imam-ul-Haq","pid":"568276"},{"dismissal-by":{"name":"JE Root","pid":"303669"},"dismissal":"catch","SR":50,"6s":0,"4s":0,"B":4,"R":2,"dismissal-info":"c Root b Woakes","batsman":"Fakhar Zaman","pid":"512191"},{"dismissal-by":{"name":"CR Woakes","pid":"247235"},"dismissal":"bowled","SR":136,"6s":0,"4s":3,"B":11,"R":15,"dismissal-info":" b Woakes","batsman":"Babar Azam","pid":"348144"},{"dismissal-by":[{"name":"TK Curran","pid":"550235"}],"dismissal":"runout","SR":100,"6s":0,"4s":7,"B":41,"R":41,"dismissal-info":"run out (Curran)","batsman":"Haris Sohail","pid":"318788"},{"dismissal-by":{"name":"Chris Jordan","pid":288992},"dismissal":"catch","SR":79,"6s":0,"4s":2,"B":34,"R":27,"dismissal-info":"c sub (CJ Jordan) b Plunkett","batsman":"Sarfaraz Ahmed (c)  ","pid":"227760"},{"dismissal-by":{"name":"JJ Roy","pid":"298438"},"dismissal":"catch","SR":120,"6s":3,"4s":2,"B":43,"R":52,"dismissal-info":"c Roy b Woakes","batsman":"Asif Ali","pid":"494230"},{"dismissal-by":{"name":"CR Woakes","pid":"247235"},"dismissal":"catch & bowled","SR":183,"6s":0,"4s":4,"B":12,"R":22,"dismissal-info":"c & b Woakes","batsman":"Imad Wasim","pid":"227758"},{"dismissal-by":{"name":"TK Curran","pid":"550235"},"dismissal":"lbw","SR":118,"6s":0,"4s":1,"B":11,"R":13,"dismissal-info":"lbw b Curran","batsman":"Faheem Ashraf","pid":"681117"},{"dismissal":"not out","SR":200,"6s":2,"4s":1,"B":9,"R":18,"dismissal-info":"not out","batsman":"Hasan Ali","pid":"681305"},{"dismissal-by":{"name":"DJ Willey","pid":"308251"},"dismissal":"catch & bowled","SR":175,"6s":1,"4s":0,"B":4,"R":7,"dismissal-info":"c & b Willey","batsman":"Shaheen Shah Afridi","pid":"1072470"},{"dismissal":"not out","SR":0,"6s":0,"4s":0,"B":0,"R":0,"dismissal-info":"not out","batsman":"Junaid Khan","pid":"259551"},{"SR":"","6s":"","4s":"","B":"","R":"","dismissal-info":"","detail":"10 (lb 1, w 9)","batsman":"Extras","pid":0}],"title":"Pakistan Innings"},{"scores":[{"dismissal-by":{"name":"Asif Ali","pid":"494230"},"dismissal":"catch","SR":138,"6s":4,"4s":8,"B":55,"R":76,"dismissal-info":"c Asif Ali b Faheem Ashraf","batsman":"JJ Roy","pid":"298438"},{"dismissal-by":{"name":"Junaid Khan","pid":"259551"},"dismissal":"bowled","SR":137,"6s":5,"4s":15,"B":93,"R":128,"dismissal-info":" b Junaid Khan","batsman":"JM Bairstow  ","pid":"297433"},{"dismissal-by":{"name":"Babar Azam","pid":"348144"},"dismissal":"catch","SR":119,"6s":1,"4s":4,"B":36,"R":43,"dismissal-info":"c Babar Azam b Imad Wasim","batsman":"JE Root","pid":"303669"},{"dismissal-by":[{"name":"Shaheen Shah Afridi","pid":"1072470"}],"dismissal":"runout","SR":97,"6s":2,"4s":2,"B":38,"R":37,"dismissal-info":"run out (Shaheen Shah Afridi)","batsman":"BA Stokes","pid":"311158"},{"dismissal":"not out","SR":127,"6s":3,"4s":4,"B":36,"R":46,"dismissal-info":"not out","batsman":"MM Ali","pid":"8917"},{"dismissal":"not out","SR":141,"6s":1,"4s":1,"B":12,"R":17,"dismissal-info":"not out","batsman":"EJG Morgan (c)","pid":"24598"},{"SR":"","6s":"","4s":"","B":"","R":"","dismissal-info":"","detail":"12 (lb 3, nb 1, w 8)","batsman":"Extras","pid":0}],"title":"England Innings"}],"team":[{"players":[{"name":"JJ Roy","pid":"298438"},{"name":"JM Bairstow","pid":"297433"},{"name":"JE Root","pid":"303669"},{"name":"BA Stokes","pid":"311158"},{"name":"MM Ali","pid":"8917"},{"name":"EJG Morgan","pid":"24598"},{"name":"JL Denly","pid":"12454"},{"name":"TK Curran","pid":"550235"},{"name":"CR Woakes","pid":"247235"},{"name":"DJ Willey","pid":"308251"},{"name":"LE Plunkett","pid":"19264"}],"name":"England"},{"players":[{"name":"Imam-ul-Haq","pid":"568276"},{"name":"Fakhar Zaman","pid":"512191"},{"name":"Babar Azam","pid":"348144"},{"name":"Haris Sohail","pid":"318788"},{"name":"Sarfaraz Ahmed","pid":"227760"},{"name":"Asif Ali","pid":"494230"},{"name":"Imad Wasim","pid":"227758"},{"name":"Faheem Ashraf","pid":"681117"},{"name":"Hasan Ali","pid":"681305"},{"name":"Shaheen Shah Afridi","pid":"1072470"},{"name":"Junaid Khan","pid":"259551"}],"name":"Pakistan"}],"man-of-the-match":{"name":"JM Bairstow","pid":"297433"},"toss_winner_team":"England","winner_team":"England","matchStarted":true},"type":"ODI","cache3":true,"creditsLeft":202,"v":"1","ttl":6,"provider":{"source":"Various","url":"https://cricapi.com/","pubDate":"2019-05-23T07:15:07.670Z"}}

Вывод, который я ищу, таков:

Если я укажу данные-> команда-> игроки-> имя, он должен вывести это (только имя)enter image description here

Если я предоставлю данные-> команда-> Игроки, он должен вывести это (имя + код)enter image description here

Точно так же, если я укажу любую другую группу, она должна вывести соответствующие значения.

Можете ли вы указать значение response?

Tanaike 23.05.2019 02:05

Обновлено значение ответа в вопросе. Спасибо за внимание. Так же обновил апикей в вопросе.

Sabha 23.05.2019 09:17

Спасибо за добавление информации. Если добавленная стоимость равна response.getContentText(), dataSet.length становится undefined. При этом rows становится []. Я думаю, что причина вашей ошибки в этом. Хотя я думал, что пытался изменить ваш скрипт, к сожалению, из вашего вопроса я не смог понять, какой результат вы хотите. Поэтому я разместил это как комментарий. Прошу прощения за мое плохое знание английского.

Tanaike 23.05.2019 09:39

Спасибо за быстрый ответ. Я не знаю, работаете ли вы со скриптами приложений Google и таблицами Google. Мне нужен вывод в электронных таблицах Google на активном листе в табличном формате, где все значения идут под соответствующими заголовками. 'rows.push([data.data, data.team, data.players, data.name])' должен вывести список игроков один под другим, а также к какой команде они принадлежат. Надеюсь, я правильно объясняю свой вопрос.

Sabha 23.05.2019 09:51

Спасибо за ответ. Я должен извиниться за мое плохое знание английского еще раз. Если data вашего ответа равно dataSet[i], цикл for не работает. Так что я не могу понять насчёт rows.push([data.data, data.team, data.players, data.name]). Можете ли вы предоставить образец вывода, который вы хотите? Даже если вы не можете этого сделать, не волнуйтесь. Причина, по которой я не мог понять ваш вывод, связана с моим плохим знанием английского языка. Другие пользователи смогут понять об этом.

Tanaike 23.05.2019 09:58

Спасибо еще раз. Я обновил желаемый результат в вопросе. Надеюсь, я получу какое-то решение о том, как получить желаемый результат.

Sabha 23.05.2019 10:09

Спасибо за ответ. К сожалению, я не мог понять о ваших дополнительных изображениях. Я не хочу больше вас беспокоить. Поэтому, когда я смог понять вашу цель, я хотел бы подумать о вашем решении. Я глубоко извиняюсь за мое плохое знание английского языка.

Tanaike 23.05.2019 10:18

Я искренне ценю ваше время, чтобы помочь мне с моей проблемой. Большое спасибо. Бог благословил ! Жду решения моей проблемы.

Sabha 23.05.2019 10:23

Спасибо за ответ. Я думаю, что значения ваших двух изображений могут быть получены с помощью сценария. Но я пока не могу понять насчёт Similarly if I supply any other group, it should output the respective values.. Прошу прощения за эту ситуацию. Так могу я спросить тебя об этом?

Tanaike 24.05.2019 00:10

Я признателен, если вы можете помочь мне, как получить значения по сценарию. Под другой группой я подразумеваю другие данные, доступные в выводе json. Например. данные-> поле или данные-> ватин или данные-> боулинг. Надеюсь, я объяснил, о чем вы просите. Даже если вы поможете мне получить значения изображений, которые я загрузил, я попытаюсь получить другие значения самостоятельно, разобравшись с вашим скриптом. Спасибо

Sabha 24.05.2019 09:20

Спасибо за ответ. 1. Насчет data->fielding or data->batting or data->bowling кажется, что это предметы. Могу ли я спросить вас о выходе, который вы хотите? 2. Если вы хотите получить разные значения, вводя разные параметры, структуры fielding, batting и bowling одинаковы. Но структура team отличается от других. Об этом, как вы хотите сделать? 3. Есть ли другие ключи, которые вам нужны, кроме fielding, batting, bowling и team?

Tanaike 24.05.2019 09:43

1. результат, который мне нужен, аналогичен изображениям, которые я разместил. Данные в табличном формате на основе параметров. 2. Да, я понимаю, что структуры разные, и снова я бы сказал то же самое, что данные должны поступать в таблицы на основе структуры. 3. Я хочу охватить все данные. Для лучшего понимания посетите https://json-csv.com/ и вставьте туда вывод json. Затем вы сгенерируете вывод. Я хочу аналогичный вывод в гугл листах без перехода на сайт https://json-csv.com/.

Sabha 24.05.2019 10:16

Спасибо за ответ. К сожалению, я пока не могу понять вашу цель. Но когда я нашел видение цели, я хотел бы подумать о вашем решении. Прошу прощения, что не смогу опубликовать ответ в ближайшее время.

Tanaike 24.05.2019 11:15

Моя проблема решена. Я использовал код отсюда, и это сработало https://github.com/bradjasper/ImportJSON/blob/master/ImportJ‌​SON.gs

Sabha 24.05.2019 14:20

Спасибо за предоставленную информацию. Я рад, что ваша проблема была решена.

Tanaike 24.05.2019 14:26
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
15
1 443
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта ошибка не связана со скриптом приложения. Это ваша проблема с листом Google, вам нужно заморозить заголовок листа. Шаги: 1) Выберите строку заголовка 2) Перейдите в меню листа «Просмотр»> «Заморозить»> «1 строка». проверьте скриншот

Для получения более подробной информации см. следующий снимок экрана:

enter image description here

Другие вопросы по теме