在 R 中编写字典加法函数
Writing dictionary addition function in R
我需要在 R 中编写与以下代码等效的代码,但我不太确定该怎么做:
def add(args):
result = args["a"] + args["b"]
return result
原因是因为我使用的平台 (Cloudera Data Science Workbench) 模型需要 JSON 输入才能使用 API 键调用它们
所以如果我在 R 中编写一个测试模型,例如:
f <- function(x, y) {
return (x + y)
}
我无法使用 httr
包进行类似 {"x" : 2, "y" : 4} 的调用。
所以我要么需要制作一个字典,比如在 R 中调用函数
或
我只是错误地调用了 JSON,在这种情况下,有人可以帮助我正确格式化 API 调用
谢谢
JSON 是大多数 REST API 的默认数据格式。我们可以使用 jsonlite
包将 R 列表序列化为 JSON。基于 json 字符串创建 R 列表的另一种方法也是可能的:
library(jsonlite)
# named lists
l <- list(x = 2, y = 4)
l
#> $x
#> [1] 2
#>
#> $y
#> [1] 4
c <- "{\"x\":3,\"y\":5}"
c
#> [1] "{\"x\":3,\"y\":5}"
toJSON(l, auto_unbox = TRUE)
#> {"x":2,"y":4}
fromJSON(c, simplifyVector = TRUE)
#> $x
#> [1] 3
#>
#> $y
#> [1] 5
# vector without names
toJSON(c(1,2,3), auto_unbox = TRUE)
#> [1,2,3]
fromJSON("[4,5,6]", simplifyVector = TRUE)
#> [1] 4 5 6
由 reprex package (v2.0.1)
于 2021-10-07 创建
感谢@danlooo 的帮助。连同我自己的研究,我想出了一个满足我的问题的答案
由于其余 API 需要 CSDW 上的键值对格式,我可以按照@danlooos 的回答执行以下操作:
f <- function(l) {
return (l$a + l$b)
}
f(list(a = 2, b = 3) # Returns 5
这可以放入 JSON 格式,然后用于 API 调用:
{"a" : 2, "b" : 3}
我需要在 R 中编写与以下代码等效的代码,但我不太确定该怎么做:
def add(args):
result = args["a"] + args["b"]
return result
原因是因为我使用的平台 (Cloudera Data Science Workbench) 模型需要 JSON 输入才能使用 API 键调用它们
所以如果我在 R 中编写一个测试模型,例如:
f <- function(x, y) {
return (x + y)
}
我无法使用 httr
包进行类似 {"x" : 2, "y" : 4} 的调用。
所以我要么需要制作一个字典,比如在 R 中调用函数
或
我只是错误地调用了 JSON,在这种情况下,有人可以帮助我正确格式化 API 调用
谢谢
JSON 是大多数 REST API 的默认数据格式。我们可以使用 jsonlite
包将 R 列表序列化为 JSON。基于 json 字符串创建 R 列表的另一种方法也是可能的:
library(jsonlite)
# named lists
l <- list(x = 2, y = 4)
l
#> $x
#> [1] 2
#>
#> $y
#> [1] 4
c <- "{\"x\":3,\"y\":5}"
c
#> [1] "{\"x\":3,\"y\":5}"
toJSON(l, auto_unbox = TRUE)
#> {"x":2,"y":4}
fromJSON(c, simplifyVector = TRUE)
#> $x
#> [1] 3
#>
#> $y
#> [1] 5
# vector without names
toJSON(c(1,2,3), auto_unbox = TRUE)
#> [1,2,3]
fromJSON("[4,5,6]", simplifyVector = TRUE)
#> [1] 4 5 6
由 reprex package (v2.0.1)
于 2021-10-07 创建感谢@danlooo 的帮助。连同我自己的研究,我想出了一个满足我的问题的答案
由于其余 API 需要 CSDW 上的键值对格式,我可以按照@danlooos 的回答执行以下操作:
f <- function(l) {
return (l$a + l$b)
}
f(list(a = 2, b = 3) # Returns 5
这可以放入 JSON 格式,然后用于 API 调用:
{"a" : 2, "b" : 3}