使用 data.table 写入并加载 JSON 字符串

Art*_*sov 5 json r data.table

我尝试使用 .json 将 JSON 字符串保存到 CSV fwrite。但我无法将其加载回来fread

问题:我应该在这里使用什么报价设置?

library(data.table)
library(jsonlite)

r <- list(a = "text")
d <- data.table(
  a = toJSON(r, auto_unbox = TRUE)
)

tmp <- tempfile()
fwrite(d, tmp, quote = TRUE, qmethod = "escape")
fromJSON(fread(tmp)[["a"]][1])
Run Code Online (Sandbox Code Playgroud)

上面的代码产生错误:

Error: lexical error: invalid char in json text.
                                      {\"a\":\"text\"}
                     (right here) ------^
Run Code Online (Sandbox Code Playgroud)

Art*_*sov 4

qmethod = "double"当前版本(1.12.3)的解决方案:

library(data.table)
library(jsonlite)

r <- list(a = "text")
d <- data.table(
  a = toJSON(r, auto_unbox = TRUE)
)

tmp <- tempfile()
fwrite(d, tmp, quote = TRUE, qmethod = "double")
fromJSON(gsub("\"\"", "\"", fread(tmp)[["a"]], fixed = TRUE)[1])
Run Code Online (Sandbox Code Playgroud)