【发布时间】:2018-07-17 23:02:21
【问题描述】:
我最近一直在用 R 中的 Plumber 进行试验,当我使用 POST 请求传递以下数据时,我取得了成功;
{"Gender": "F", "State": "AZ"}
这让我可以编写如下函数来返回数据。
#* @post /score
score <- function(Gender, State){
data <- list(
Gender = as.factor(Gender)
, State = as.factor(State))
return(data)
}
但是,当我尝试 POST 一个 JSON 对象数组时,我似乎无法通过函数访问数据
[{"Gender":"F","State":"AZ"},{"Gender":"F","State":"NY"},{"Gender":"M","State":"DC"}]
我收到以下错误
{
"error": [
"500 - Internal server error"
],
"message": [
"Error in is.factor(x): argument \"Gender\" is missing, with no default\n"
]
}
有人知道 Plumber 是如何解析 JSON 的吗?我不确定如何访问字段并将其分配给向量以对数据进行评分。
提前致谢
【问题讨论】:
-
我不认为这会在今天得到很好的处理。我在这里创建了一个问题。 github.com/trestletech/plumber/issues/236。一种解决方法是在对象内命名数组,例如
{arr: ["Gender": ...,然后您可以通过arr参数访问它 -
谢谢。命名数组暂时解决了这个问题。
-
在这里完成疯狂的猜测 - 如果你将你的函数定义为
score <- function(...)然后相应地解开里面的点会发生什么