Получить весь список как Json из списка в R
Здравствуйте. Итак, я использую запрос get к github api:
commitsPublic <- GET("https://<host-name>/api/v3/search/commits?
q=is:public+org:<ORG-NAME>",
add_headers(Authorization= "token <your-Token>", Accept=
'application/vnd.github.cloak-preview'))
commitsPublic
И я получаю:
156 предметов (общее количество)
Content-Type: application/json; charset=utf-8
Size: 291 kB
{
"total_count": 156,
"incomplete_results": false,
"items": [
{
(I removed the Items Since they are not important)
Но когда я пытаюсь преобразовать Json:
Показывает необработанные данные, которые не структурированы и не читаются
jsonRespText<-content(commitsPublic,as="text")
jsonRespText
Преобразовать в Json:
toJson <- fromJSON(jsonRespText)
toJson
Возвращает:
$items[[30]]$score
[1] 1
Возвращает список с элементами до номера 30 "[[30]]
и элементы [[31]] имеют значение NULL
Итак, я спрашиваю, как я могу получить список из 156 элементов в списке из текста Json. У меня есть еще один запрос на получение, который дает мне 10.000 Total Commits. Но когда я конвертирую из Json, в списке еще 30. Так что любая помощь была бы благодарна!
1 ответ
Решение
Github API разбивает на 30 результатов. Информация о нумерации страниц находится в заголовке ссылки ответа.
library(httr)
commitsPublic <- GET("https://api.github.com/search/commits?q=is:public+org:rstudio",
add_headers(Accept = 'application/vnd.github.cloak-preview'))
headers(commitsPublic)$link
#> [1] "<https://api.github.com/search/commits?q=is%3Apublic+org%3Arstudio&page=2>;
#> rel=\"next\",
#> <https://api.github.com/search/commits?q=is%3Apublic+org%3Arstudio&page=34>;
#> rel=\"last\""
Создано 2019-03-22 пакетом представлением (v0.2.1)
Это говорит нам, где находится следующая страница, и что в данном случае всего 34 страницы.
Ссылка: https://developer.github.com/v3/guides/traversing-with-pagination/