如何识别JSON无效的位置或原因(RJSONIO)

时间:2015-05-23 04:04:38

标签: json r rjsonio

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

花了一些时间试图摆弄fromJSON来自JSON - > dataframe其中columns = JSON键,并且在执行此操作时遇到大量错误,我在列中使用了isValidJSON(),发现我的JSON大约有75%是"无效"。

现在,我完全相信这个数据实际上是直接来自数据库的有效JSON,因此我希望能够确定fromJSON函数遇到麻烦的50,000个字符的位置

我已经尝试过debug(),但它只是告诉我错误发生在哪个函数调用上。

我分享样本行,如果它们不是那么繁琐,但它是一个健康的价值组合,想象一下具有df $功能的df:

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

Code I尝试运行:

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
> 

0 个答案:

没有答案