Plumber ( https://github.com/trestletech/plumber ) を使用して、R ソース コード用の Web API を作成しました。この目的は、json_string を入力として処理し、それを R データフレームに変換することです。
R コード:
#* @param data
#* @post /predict
jsonToDF <- function(data) {
library(jsonlite)
dat <- fromJSON(data)
}
上記のコードからわかるように、ライブラリjsonlite
とfromJSON()
メソッドを使用しています。
次に、次の方法でサービスをローカルに公開しました。
library(plumber)
r <- plumb("code.R")
r$run(port=54321)
私はcurlリクエストを使用しました:
curl -v -i -X POST -H "Content-Type: application/json" --data "testData='{\"a\":\"b\"}'" http://localhost:54321/predict
json_string ( {"a":"b"}
) を送信しますが、これは私が得たエラーです:
<simpleError: lexical error: invalid char in json text.
'{"a":"b"}'
(right here) ------^
R コンソールを使用して入力の有効性を再確認しましたが、同じエラー メッセージは表示されませんでした。
> z <- fromJSON('{"a":"b"}')
> z
$a
[1] "b"
なぜRコンソールで機能するのに、curlリクエストのデータフィールドへの入力としては機能しないのか、誰かに説明してもらえますか? どうもありがとうございました!