用R解析JSON

Bti*_*rt3 84 json r

我对R来说相当新,但越多使用它,我就越发现它对SAS或SPSS的影响有多大.正如我所看到的,其中一个主要好处是能够从网络获取和分析数据.我想这是可能的(甚至可能是直截了当的),但我希望解析网上公开的JSON数据.我不是一个程序员,所以你能提供的任何帮助和指导将不胜感激.即使你给我一个基本的工作示例,我也许可以解决它.

rcs*_*rcs 86

来自Omegahat的RJSONIO是另一个包,它提供了以JSON格式读写数据的工具.

rjson不使用S4/S3方法,因此不易扩展,但仍然有用.不幸的是,它没有使用矢量化操作,因此对于非平凡数据来说太慢了.类似地,为了将JSON数据读入R,它有点慢,因此不能扩展到大数据,如果这是一个问题.

更新(新包2013-12-03):

jsonlite:这个包是包的一个分支RJSONIO.它构建在解析器之上,RJSONIO但实现了R对象和JSON字符串之间的不同映射.这个包中的C代码主要来自RJSONIOPackage,R代码已经从头开始重写.除了for fromJSON和drop-in替换之外toJSON,该包还具有序列化对象的功能.此外,该软件包包含许多单元测试,以确保所有边缘情况都被编码和解码,以便与系统和应用程序中的动态数据一起使用.

  • 我找到了rjson,RJSONIO和jsonlite的[这个比较](http://rstudio-pubs-static.s3.amazonaws.com/31702_9c22e3d1a0c44968a4a1f9656f1800ab.html) (3认同)
  • 上面的比较链接已经死了。[this](https://rstudio-pubs-static.s3.amazonaws.com/31702_9c22e3d1a0c44968a4a1f9656f1800ab.html) 是正确的链接吗?(区别是https) (2认同)

小智 53

jsonlite包易于使用,并试图JSON转换成数据帧.

例:

library(jsonlite)

# url with some information about project in Andalussia
url <- 'http://www.juntadeandalucia.es/export/drupaljda/ayudas.json'

# read url and convert to data.frame
document <- fromJSON(txt=url)
Run Code Online (Sandbox Code Playgroud)


小智 19

这是缺少的例子

library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,但你不想为文件变量名传递一个字符串,如图所示. (2认同)

pau*_*eba 5

RJSONIO、rjson 和 jsonlite 中的 fromJSON() 函数不会为复杂的嵌套 json 对象返回简单的 2D data.frame。

为了克服这个问题,你可以使用tidyjson。它接受 json 并始终返回 data.frame。目前在 CRAN 中不可用,您可以在这里获取: https: //github.com/sailthru/tidyjson

更新: tidyjson现已在cran中可用,您可以直接使用安装它install.packages("tidyjson")