我在httr库中使用POST函数来获取一些数据,代码如下所示。
library(httr)
url = "https://xxxx:xxx@api.xxx/_search" #omitted for privacy
a = POST(url,body = query,encode = "json")
查询如下附录所示。 a$content
给了我一大堆十六进制数字,在我得到一些有用的数据之前我必须使用另一个函数。
最终,我希望使用b = fromJSON(a$content)
获取数据框。到目前为止,为了获得我必须使用的任何数据:
chr<-function(n){rawToChar(as.raw(n))}
b = jsonlite::fromJSON(chr(a$content))
data = b$hits$hits$`_source`
考虑到我通过本地函数解析数据以获取最终数据,这似乎效率低下。所以我的问题如下:
附录:
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 :(得分:1)
POST功能看起来不错。
js<-fromJSON(content(a,as="text"))