Вопрос:

Вставка списка внутри URL с использованием R

r list api paste httr

478 просмотра

2 ответа

44 Репутация автора

Я играю с некоторыми API и у меня простой вопрос. Как вставить список через запятую =в указанном ниже URL-адресе вместо того, чтобы писать все вручную?

library(httr)

X <- GET("url/?query=")

Другими словами, учитывая мой список, Lя хотел бы закончить с:

X <- GET("url/?query=a,b,c,d")

Спасибо!

Обновление L выглядит так:

> dput(L)
list("a","b","c","d")
Автор: CHRD Источник Размещён: 06.04.2017 02:37

Ответы (2)


0 плюса

1583 Репутация автора

Вы можете использовать 2 paste():

url = paste("url/?query=",paste(L,collapse=","),sep="")
X <- GET(url)
Автор: xraynaud Размещён: 06.04.2017 02:59

1 плюс

64269 Репутация автора

Решение

Это гораздо более безопасный и разумный способ создания / передачи строк запроса:

library(httr)

res <- GET(url = "http://httpbin.org/get",
           query = list(
             query = paste0(list("a","b","c","d"), collapse=",")
           ))

str(content(res, as="parsed"))
## List of 4
##  $ args   :List of 1
##   ..$ query: chr "a,b,c,d"
##  $ headers:List of 5
##   ..$ Accept         : chr "application/json, text/xml, application/xml, */*"
##   ..$ Accept-Encoding: chr "gzip, deflate"
##   ..$ Connection     : chr "close"
##   ..$ Host           : chr "httpbin.org"
##   ..$ User-Agent     : chr "libcurl/7.51.0 r-curl/2.3 httr/1.2.1"
##  $ origin : chr "50.252.233.22"
##  $ url    : chr "http://httpbin.org/get?query=a%2Cb%2Cc%2Cd"
Автор: hrbrmstr Размещён: 06.04.2017 03:05
Вопросы из категории :
32x32