Получить весь список как Json из списка в R - PullRequest
1 голос
/ 22 марта 2019

Здравствуйте. Я использую запрос 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. У меня есть еще один запрос get, который дает мне 10.000 полных коммитов. Но когда я конвертирую из Json, в списке все еще остается 30. Поэтому любая помощьбыл бы благодарен спасибо!

1 Ответ

1 голос
/ 22 марта 2019

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/

...