-1

以下に示す現在のコードは、リクエスト ペイロード (本文) を作成しようとしていますが、目的の結果が得られません。

library(df2json)
library(rjson)

y = rjson::fromJSON((df2json::df2json(dataframe)))
globalparam = ""

req = list(
  Inputs = list(
    input1 = y
  )
  ,GlobalParameters = paste("{",globalparam,"}",sep="")#globalparam
)
body = enc2utf8((rjson::toJSON(req)))

body現在、

{
    "Inputs": {
        "input1": [
            {
                "X": 7,
                "Y": 5,
                "month": "mar",
                "day": "fri",
                "FFMC": 86.2,
                "DMC": 26.2,
                "DC": 94.3,
                "ISI": 5.1,
                "temp": 8.2,
                "RH": 51,
                "wind": 6.7,
                "rain": 0,
                "area": 0
            }
        ]
    },
    "GlobalParameters": "{}"
}

ただし、次のようにする必要があります。

{
  "Inputs": {
    "input1": [
      {
    "X": 7,
    "Y": 5,
    "month": "mar",
    "day": "fri",
    "FFMC": 86.2,
    "DMC": 26.2,
    "DC": 94.3,
    "ISI": 5.1,
    "temp": 8.2,
    "RH": 51,
    "wind": 6.7,
    "rain": 0,
    "area": 0

      }
    ]
  },
  "GlobalParameters": {}
}

したがって、基本的にグローバル パラメータは {} である必要がありますが、ハードコーディングする必要はありません。かなり単純な問題のように思えましたが、修正できませんでした。助けてください!

編集:

これがデータフレームです

  X Y month day FFMC  DMC    DC ISI temp RH wind rain area
1 7 5   mar fri 86.2 26.2  94.3 5.1  8.2 51  6.7  0.0    0
2 7 4   oct tue 90.6 35.4 669.1 6.7 18.0 33  0.9  0.0    0
3 7 4   oct sat 90.6 43.7 686.9 6.7 14.6 33  1.3  0.0    0
4 8 6   mar fri 91.7 33.3  77.5 9.0  8.3 97  4.0  0.2    0

これは別のデータ フレームの例です

> a = data.frame("col1" = c(81, 81, 81, 81), "col2" = c(72, 69, 79, 84))
4

1 に答える 1

1

このサンプルデータの使用

dd<-read.table(text="  X Y month day FFMC  DMC    DC ISI temp RH wind rain area
1 7 5   mar fri 86.2 26.2  94.3 5.1  8.2 51  6.7  0.0    0", header=T)

できるよ

globalparam = setNames(list(), character(0))

req = list(
  Inputs = list(
    input1 = dd
  )
  ,GlobalParameters = globalparam
)
body = enc2utf8((rjson::toJSON(req)))

適切に処理するにglobalparamは名前付きリストに強制する必要があるため、少し変に見えることに注意してください。rjson空のときにのみこれを行う必要があります。

于 2015-07-08T05:14:38.297 に答える