4

大規模な JSON 列であるデータ列を扱っています。各行の値は最大 50,000 文字です。

fromJSON をいじって JSON -> dataframe where columns = JSON keys に移動しようとしてしばらく時間を費やした後、多数のエラーが発生したため、列全体で isValidJSON() を使用したところ、JSON の約 75% が「無効な"。

現在、ソースに基づいて、このデータは実際に DB から直接取得した有効な JSON であると完全に確信しているため、50,000 文字のどこで fromJSON 関数が問題を起こしているかを特定できれば幸いです。

debug() を試しましたが、どの関数呼び出しでエラーが発生したかがわかります。

サンプル行がすべてそれほど面倒でなければ共有しますが、値の健全な組み合わせです。df$features を使用した df を想像してください。

{"names":["bob","alice"],"ages":{"bob":20,"alice":21}, "id":54, "isTrue":false}... ad infinitum 

実行しようとしているコード:

iValid <- function(x){return(isValidJSON(I(x)))}
sapply(df$features,iValid)

 [1]  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE...

> fromJSON(df$features[2])
debugging in: fromJSON(df$features[2])
debug: standardGeneric("fromJSON")
Browse[2]> n
debugging in: fromJSON(content, handler, default.size, depth, allowComments, 
    asText = FALSE, data, maxChar, simplify = simplify, ..., 
    nullValue = nullValue, simplifyWithNames = simplifyWithNames, 
    encoding = encoding, stringFun = stringFun)
debug: standardGeneric("fromJSON")
Browse[3]> n
Error in fromJSON(content, handler, default.size, depth, allowComments,  : 
  invalid JSON input
> 
4

0 に答える 0