У меня есть таблица URL-адресов, каждый из которых указывает на определенный вывод json. Я хотел бы проанализировать их через fromJSON
(или любой другой парсер json), чтобы извлечь данные из этих выходов json и объединить их в список списков.
Мой код настроен следующим образом:
pages <- list()
for (i in 1:length(urltable))
{
mydata<-fromJSON(urltable[i], flatten=TRUE)
pages[[i]] <- mydata$entries
}
который отображает errorterm:
Error in (function (classes, fdef, mtable) :
unable to find inherited method for function 'fromJSON' for signature '"list", "missing"'
Если я протестирую его, вставив один URL-адрес в fromJSON()
, он работает, поэтому я полагаю, проблема заключается в том, что fromJSON
не читает таблицу?
У кого-нибудь есть предложение, как это сделать?
Дополнение: urltable представляет собой таблицу из 1 столбца и 326 строк. заголовок таблицы:
url
1 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aalzum&start=10
2 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aalzum&start=20
3 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=10
4 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=20
5 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=30
6 http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=40
Добавление 2 подмножества urltable, dput(subset_urltable)
:
structure(list(url = c("http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aalzum&start=10","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aalzum&start=20","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=10","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=20","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=30","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=40","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=50","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=60","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=70","http://zoeken.kvk.nl/Jsonsearch.ashx?site=handelsregister&partialfields=&q=Aardenburg&start=80")), row.names = c(NA, -10L), class = "data.frame", .Names = "url")
@DhawalKapil, конечно, данных немного. Это таблица из 1 столбца и x строк только URL-адресов. Пожалуйста, смотрите исходный пост для добавления. Спасибо за помощь ...
fromJSON
ожидает строку json, в вашем случае вы пытаетесь получить данные json и преобразовать их за один раз. Вам нужно будет передать данные со своего URL-адреса на fromJSON
. Сделай что-нибудь вроде этого
mydata<-fromJSON(url(urltable[i]), flatten=TRUE)
url
будет передавать извлеченные данные функции fromJSON
.
Готовое решение должно выглядеть так
pages <- list()
for (i in 1:length(urltable))
{
mydata<-fromJSON(url(as.character(urltable[i])), flatten=TRUE)
pages[[i]] <- mydata$entries
}
с установленным пакетом curl
вы можете обойтись без явного использования функции url
.
Кроме того, если вы хотите перебрать все строки urltable
, не используйте length(urltable)
, так как он вернет количество столбцов в вашем фрейме данных, которое здесь равно 1, вместо этого выполните length(urltable$url)
pages <- list()
for (i in 1:length(urltable$url))
{
mydata<-fromJSON(as.character(urltable$url[i]), flatten=TRUE)
pages[[i]] <- mydata$entries
}
Спасибо за ваше предложение. Однако, если я попробую это сделать, я получаю следующую ошибку: Ошибка в url (urltablel [i]): недопустимый аргумент «описание».
проверьте, является ли nieuw_url[i]
строковым элементом, если нет - as.character(nieuw_url[i])
Извините за путаницу. nieuw_url = то же, что и urltable. Но если я сделаю as.character (nieuw_url [i]), то получу следующую ошибку: Схема URL не поддерживается этим методом ....
Можете ли вы взять подмножество своих данных, сделать dput(smalldata)
и вставить точный результат в свой вопрос выше
Позвольте нам продолжить обсуждение в чате.
вы также можете разместить свои данные?