除了下面的方法,还有其他方式可以将一个json.rows文件加载到RStudio吗?

8
我有一个json.rows文件,文件名为instances.json.rows,大约有223k行。
我尝试使用jsonlite进行解析,但是出现了错误。我的代码如下:
```R instancesfile <- fromJSON("instances.json.rows") ```
请帮我检查一下。
Error in parse_con(txt, bigint_as_char) : parse error: trailing garbage
      kcBy-cs", "time_type": "in"} {"cluster_ids": ["Bz4SOc6zZn0"]
                 (right here) ------^

这是我文件中第一行数据的图像。如果我的问题不够清晰,请在评论中告诉我,我会根据需要编辑我的问题。提前致谢!

我认为你需要用逗号替换换行符,并在整个文件外面加上一对{}... 我猜想你正在处理的文件实际上是由多个json语句通过换行符分隔而成,而不是一个单一的语句。 - kpie
你好,是的。该文件的每一行都是一个单独的JSON文档,描述了一个单独的事件或实体。 我是新手,刚开始接触json文件。您能详细介绍一下如何将其加载到Rstudio中吗?如果您没有时间,能否给我指点一些可以阅读的资料呢? - ak95
2个回答

12
out <- lapply(readLines("instances.json.rows"), fromJSON)
恭喜你获得了你想要的结果。L apply将fromJSON函数应用于从readLines返回的每个成员,并将结果返回给out。我的评论有点说错了,为使您的文件有效的json,您需要用逗号替换换行符,然后将结果放在下面示例中的*处。但那都是无意义的,只需使用上面的一行代码。
{"data":[*]}

那绝对有效,帮助我将json文件读入我的工作室。但现在我有一个非常长的列表,我无法分析。您有什么建议可以帮助我继续吗?如果我发送包含列表截图的电子邮件,您介意吗?谢谢! - ak95
如果将您的长列表转换为数据框,那么你能否完成它呢? - kpie

5
library(jsonlite)
instancesfile <- stream_in(file("instances.json.rows"))

优点:

  • 自动格式化为数据帧
  • 提供详细的进度报告(除非您更改了默认设置)
  • 允许您调整页面大小

它运行得很好!谢谢@Jeff Parker - RodLL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接