在R中访问JSON对象

时间:2014-08-29 01:40:13

标签: json r

我一直在尝试访问API,该API以下列JSON格式显示:

  

{" notes":"数据是一个数组(行)数组,列中的行名称   row_headers"," row_headers":[" Date"," Time Spent(seconds)"," Number of   人""活动""分类""生产率和#34;]"行":[[" 2014- 05-28T09:00:00",538,1,"的Gmail""电子邮件", - 1],[" 2014-05-28T09:00: 00",450,1," MS   前景""电子邮件",1],[" 2014-05-28T09:00:00",374,1,"通信器"&# 34;通用   通讯",1],[" 2014-05-28T09:00:00",315,1," MS   终端服务客户端","通用软件   发展",2],[" 2014-05-28T09:00:00",306,1," fivethirtyeight.com""通用   新闻\ 00意见", -

我能够使用Python导入此JSON字典,并使用以下代码将其转换为数据框:

data = json.load(urllib2.urlopen(url))
dataframe = pandas.DataFrame(data['rows'],columns=data['row_headers'])

然而,当我尝试使用以下代码在R中执行类似的操作时,我收到一条错误消息,指出R"无法打开文件' NA':没有这样的文件或目录。& #34;

json_file <- 'url of API key'
raw_json <- fromJSON(file=json_file['raw'])

如果有人对如何将上面显示的JSON对象加载到R数据帧中有任何了解,我将非常感激。

1 个答案:

答案 0 :(得分:0)

以下是使用RJSONIO::fromJSON

的示例
library(RJSONIO)

raw_json <- fromJSON(content = "https://www.rescuetime.com/anapi/data?rtapi_key=B63NUgr1wbXQS_I6tT8ON0LpvyPPcXNOd1mXfrG9&perspective=interval&format=json&resolution_time=hour&restrict_kind=activity&restrict_begin=2013-01-01&restrict_end=2014-08-28%22")

然后,您可以使用data.table::rbindlist强制转换为data.table

library(data.table)
final_data <- rbindlist(lapply(raw_json[['rows']],setattr,'names', raw_json[['row_headers']]))