2017-04-06 5 views
0

Ich spiele mit einigen APIs herum und habe eine einfache Frage. Wie füge ich eine durch Kommas getrennte Liste nach = in die URL ein, anstatt alles manuell zu schreiben?Einfügen einer URL in eine URL mit R

library(httr) 

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

Mit anderen Worten, ich meine Liste L gegeben würde mit gerne am Ende:

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

Dank!

aktualisieren L wie folgt aussieht:

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

Warum benutzen Sie nicht die integrierten Möglichkeiten zum Ändern der Abfragezeichenfolge? – hrbrmstr

+0

Ich weiß nicht, was das bedeutet? (Tut mir leid, aber ich bin extrem neu in R und Codierung im Allgemeinen). – CHRD

Antwort

1

Dies ist eine viel sicherere und vernünftigere Weg/Pass Abfrage-Strings zu bauen:

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

können Sie 2 verwenden paste():

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