2017-04-06 59 views
0

我正在玩弄一些API並有一個簡單的問題。如何在下面的URL中將=後面的逗號分隔列表粘貼,而不是手動寫入所有內容?使用R在URL中粘貼列表

library(httr) 

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

換句話說,給我的名單L我想直到結束:

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

謝謝!

更新 L樣子:

> dput(L) 
list("a","b","c","d") 
+0

你爲什麼不使用內置的方式來修改查詢字符串? – hrbrmstr

+0

我不知道那是什麼意思? (對不起,但我對R和編碼一般都很陌生)。 – CHRD

回答

1

這是建立/通查詢字符串更安全和更理智的方式:

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" 
0

可以使用2 paste()

url = paste("url/?query=",paste(L,collapse=","),sep="") 
X <- GET(url)