【问题标题】:getting binary data when using POST request in httr package在 httr 包中使用 POST 请求时获取二进制数据
【发布时间】:2016-05-24 05:18:05
【问题描述】:

我正在使用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`

考虑到我通过本地函数解析数据以获取最终数据,这似乎效率低下。所以我的问题如下:

  1. 我是否正确使用 POST 函数来获取查询?
  2. 是否有更有效(更快)的方式将我的数据放入数据框中?

附录:

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"
    }
    }
    }
    ]
    }
    }
    ]
    }
  }
}'

【问题讨论】:

    标签: r httr jsonlite


    【解决方案1】:
    1. POST 功能看起来不错。

    2. js&lt;-fromJSON(content(a,as="text"))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 2016-08-22
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多