簡體   English   中英

opencpu不一致的json序列化

[英]opencpu inconsistent json serialization

嗨,我想使用robfilter opencpu 由於默認的robfilter響應不可json序列化,因此我使用以下函數創建了自己的包:

detectOutliers <- function(json, windowWidth) {
    x <- json
    robfil <- robust.filter(x[[2]], width=windowWidth, outlier="T", online=FALSE)
    outlierDf <- data.frame(period=x[[1]], totalAmount=x[[2]], isOutlier=robfil$ol)
    return(outlierDf)
}

當在本地測試時

args <- fromJSON('{"json":[{"Period":1393632000,"x":453.2003},{"Period":1396310400,"x":742.9013},{"Period":1398902400,"x":52366.3592},{"Period":1401580800,"x":7660.234},{"Period":1404172800,"x":3967.7503},{"Period":1406851200,"x":2620.771},{"Period":1409529600,"x":1927.5348},{"Period":1412121600,"x":2094.795},{"Period":1414800000,"x":1830.223},{"Period":1417392000,"x":2286.1982},{"Period":1420070400,"x":3047.4511},{"Period":1422748800,"x":2001.4622},{"Period":1425168000,"x":1763.6833},{"Period":1427846400,"x":2033.9456},{"Period":1430438400,"x":4568.8964},{"Period":1433116800,"x":2104.0584},{"Period":1435708800,"x":1522.6288},{"Period":1438387200,"x":533.8585},{"Period":1441065600,"x":667.3039}], "windowWidth":11}')
outliers <-  do.call(detectOutliers, args)
outliers

它正確顯示了下面的數據框,其中填充了每一行

period totalAmount isOutlier
1  1393632000    453.2003         0
2  1396310400    742.9013         0
3  1398902400  52366.3592         1
4  1401580800   7660.2340         0
5  1404172800   3967.7503         0
.....

toJson(outliers)依次正確序列化此數據幀。

但是當在opencpu上調用時

curl http://opencpuURL/ocpu/library/possibly/R/detectOutliers/json -d \
'{"json":[{"Period":1393632000,"x":453.2003},{"Period":1396310400,"x":742.9013},{"Period ":1398902400,"x":52366.3592},{"Period":1401580800,"x":7660.234},{"Period":1404172800,"x":3967.7503},{"Period":1406851200,"x":2620.771},{"Period ":1409529600,"x":1927.5348},{"Period":1412121600,"x":2094.795},{"Period":1414800000,"x":1830.223},{"Period":1417392000,"x":2286.1982},{"Period ":1420070400,"x":3047.4511},{"Period":1422748800,"x":2001.4622},{"Period":1425168000,"x":1763.6833},{"Period":1427846400,"x":2033.9456},{"Period ":1430438400,"x":4568.8964},{"Period":1433116800,"x":2104.0584},{"Period":1435708800,"x":1522.6288},{"Period":1438387200,"x":533.8585},{"Period ":1441065600,"x":667.3039}],"windowWidth":11}' \
-H "Content-Type: application/json"

結果很奇怪。 如您所見,某些行僅包含2個字段

[
  {
    "period": 1393632000,
    "totalAmount": 453.2003,
    "isOutlier": 0
  },
  {
    "period": 1396310400,
    "totalAmount": 742.9013,
    "isOutlier": 0
  },
  {
    "totalAmount": 52366.3592,
    "isOutlier": 1
  },
 ....

怎么了

JSON有效負載中有一些空格。 使用類似

“ {\\” json \\“:[{\\” Period \\“:2,\\” x \\“:1},{\\” Period \\“:1,\\” x \\“:1},{\\” Perio d \\“:3,\\” x \\“:1}],\\” windowWidth \\“:” 3“}” -H“內容類型:application / json”

解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM