2016-05-24 32 views
0

Ich verwende die POST-Funktion in HTR-Bibliothek, um einige Daten zu erhalten, und der Code wird unten angezeigt.Erhalten von Binärdaten bei Verwendung der POST-Anforderung in HTR-Paket

library(httr) 

url = "https://xxxx:[email protected]/_search" #omitted for privacy 
a = POST(url,body = query,encode = "json") 

Die Abfrage ist unten im Anhang dargestellt. a$content gibt mir eine ganze Reihe von hexadezimalen Zahlen, auf denen ich eine andere Funktion verwenden muss, bevor ich einige nützliche Daten bekommen kann.

Letztendlich möchte ich einen Datenrahmen mit b = fromJSON(a$content) erhalten. Bisher, um alle Daten zu bekommen Ich habe zu verwenden:

chr<-function(n){rawToChar(as.raw(n))} 
b = jsonlite::fromJSON(chr(a$content)) 
data = b$hits$hits$`_source` 

Dies unter Berücksichtigung ineffizient scheint, dass ich in den Daten über eine lokale Funktion am Parsen die endgültigen Daten zu erhalten. Also meine Fragen sind wie folgt:

  1. Bin ich mit der POST-Funktion richtig, um die Abfrage zu bekommen?
  2. Gibt es einen effizienteren (schneller) Weg, meine Daten in einen Datenrahmen zu bekommen?

Anhang:

query = ' 
{ 
    "_source": [ 
    "start","source.country_codes", 
    "dest.country_codes" 
    ], 
    "size": 100, 
    "query": { 
    "bool": { 
    "must": [ 
    { 
    "bool": { 
    "must_not": [ 
    { 
    "range": { 
    "start": { 
    "lte": "2013-01-01T00:00:00" 
    } 
    } 
    }, 
    { 
    "range": { 
    "start": { 
    "gt": "2016-05-19T00:00:00" 
    } 
    } 
    } 
    ] 
    } 
    } 
    ] 
    } 
    } 
}' 
+0

Verwendung 'Inhalt (a)' – marbel

Antwort

0
  1. POST-Funktion sieht gut aus.

  2. js<-fromJSON(content(a,as="text"))