4

我正在处理一个只是大量 JSON 列的数据列。每行值约为 50,000 个字符。

在花了一些时间试图摆弄 fromJSON 以从 JSON -> dataframe where columns = JSON keys,并在这样做时遇到许多错误之后,我在整个列中使用了 isValidJSON() 并发现我的 JSON 中大约 75% 是“无效的” ”。

现在,基于该数据实际上是直接来自数据库的有效 JSON 的来源,我完全有信心,因此我希望能够确定 fromJSON 函数在 50,000 个字符中的哪个位置遇到问题。

我试过 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