Я пытаюсь запустить функцию jsonlite для набора накопленных мной URL-адресов API. В частности, у меня есть фрейм данных url_df, в котором есть столбец с именем URL с 162800 строками URL-адресов API. Когда я пишу сценарий и вручную вставляю каждый URL-адрес, он работает отлично. Это сценарий, который я использую для его ручного запуска по одному URL-адресу за раз:
May28 <- 'https://example.example.com/example'.
May28 <- httr::GET(May28)
May28 <- httr::content(May28, as = 'text')
May28 <- jsonlite::fromJSON(May28)
dplyr::glimpse(May28)
May28 <- as.data.frame(May28)
write.table(May28, file="May28.csv", sep=",")
Однако, поскольку у меня более 100 тыс. Строк API-адресов до go, я хотел создать al oop функция, которая повторяет вышеуказанную функцию для каждой строки (каждого URL-адреса API) в URL-адресе столбца, поэтому мне не нужно вручную вырезать и вставлять каждый URL-адрес в скрипт более 100 тысяч раз. Поэтому я сохранил эту информацию во фрейме данных под названием «url_df» и попытался ввести следующий код:
j <- 1
for (j in 1:nrow(url_df)){
url <- url_df$URL[[j]] %>%
getdata <- GET(url) %>%
rawdata <- httr::content(getdata, as='text') %>%
data <- jsonlite::fromJSON(rawdata)
data_df <- as.data.frame(data)
print(j)
j <- j+1
Sys.sleep(0.5)
}
По какой-то причине он не запускается. Одна из полученных мной ошибок была: Ошибка в jsonlite :: from JSON (rawdata): объект rawdata не найден.
Одно важное замечание: каждый URL-адрес API не возвращает только 1 значение точки данных (например, 1). Вместо этого он возвращает список значений (например, воскресенье, 1, вторник, 2 и т. Д. c).
Есть идеи, почему это может происходить или как я могу это преодолеть?
Решив эту первую проблему, я хотел бы затем связать все собранные мной данные, если это возможно ...
Спасибо !!!