R из JSON не может открыть соединение

Я работаю с алгоритмом R, который вызывает веб-сервис, который делает запрос к базе данных и возвращает объект JSON.

url <- paste ('https://example.com?id=1'') 
document <- fromJSON (content = url, method = 'C') 

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

Error in file(con, "r") : cannot open the connection
Calls: fromJSON -> fromJSON -> I -> structure -> unique
Execution halted

Есть проблема с URL-адресом https?


person perondi    schedule 18.02.2014    source источник


Ответы (1)


Такие ошибки, как cannot open the connection, часто означают, что файл не существует или у вас нет прав для его чтения.

Вы не говорите, используете ли вы пакет rjson или RJSONIO, но поскольку вы включили аргумент method, я предполагаю, что это первый. rjson::fromJSON обрабатывает свой первый аргумент как строку JSON. Вместо этого вы должны использовать аргумент file.

document <- fromJSON(file = url)

В соответствии с передовой практикой при анализе контента из Интернета вы должны сначала загрузить его; затем проанализируйте его (в два отдельных шага). Таким образом, когда что-то пойдет не так и возникнет ошибка, вы не будете тратить пропускную способность на повторную загрузку.

Попробуйте разделить код на:

json_file <- "path/to/save/it/to/the_data.json"
download.file(url, json_file)
document <- fromJSON(file = json_file)

Обратите внимание, что download.file не поддерживает https по умолчанию. Под Windows вы можете сделать setInternet2(), чтобы использовать DLL подключения Internet Explorer, и тогда все заработает. См. раздел «Подробности» в ?download.file.

person Richie Cotton    schedule 18.02.2014
comment
Используя ваш код, я получаю сообщение об ошибке в команде по файлу загрузки. Ошибка в файле загрузки (url, json_file): неподдерживаемая схема URL - person perondi; 18.02.2014