我正在处理一个只是大量 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
>