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:
- Bin ich mit der POST-Funktion richtig, um die Abfrage zu bekommen?
- 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"
}
}
}
]
}
}
]
}
}
}'
Verwendung 'Inhalt (a)' – marbel