将数据从JSON文件导入R

将数据从JSON文件导入R,json,r,Json,R,有没有办法将数据从JSON文件导入到R中?更具体地说,该文件是一个JSON对象数组,包含字符串字段、对象和数组。RJSON软件包不太清楚如何处理此问题。首先安装软件包: 然后: 库(“rjson”) json_file另一个包是RJSONIO。要转换嵌套列表,lapply可以帮助: l <- fromJSON('[{"winner":"68694999", "votes":[ {"ts":"Thu Mar 25 03:13:01 UTC 2010", "user":{"name"

有没有办法将数据从JSON文件导入到R中?更具体地说,该文件是一个JSON对象数组,包含字符串字段、对象和数组。RJSON软件包不太清楚如何处理此问题。

首先安装软件包:

然后:

库(“rjson”)

json_file另一个包是RJSONIO。要转换嵌套列表,lapply可以帮助:

l <- fromJSON('[{"winner":"68694999",  "votes":[ 
   {"ts":"Thu Mar 25 03:13:01 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}},   
   {"ts":"Thu Mar 25 03:13:08 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}}],   
  "lastVote":{"timestamp":1269486788526,"user":
   {"name":"Lamur","user_id":"68694999"}},"startPrice":0}]'
)
m <- lapply(
    l[[1]]$votes, 
    function(x) c(x$user['name'], x$user['user_id'], x['ts'])
)
m <- do.call(rbind, m)

l如果URL是https,就像用于AmazonS3一样,那么使用getURL

json <- fromJSON(getURL('https://s3.amazonaws.com/bucket/my.json'))

json
jsonlite
将json导入数据帧。它可以选择性地展平嵌套对象。嵌套数组将是数据帧

> library(jsonlite)
> winners <- fromJSON("winners.json", flatten=TRUE)
> colnames(winners)
[1] "winner" "votes" "startPrice" "lastVote.timestamp" "lastVote.user.name" "lastVote.user.user_id"
> winners[,c("winner","startPrice","lastVote.user.name")]
    winner startPrice lastVote.user.name
1 68694999          0              Lamur
> winners[,c("votes")]
[[1]]
                            ts user.name user.user_id
1 Thu Mar 25 03:13:01 UTC 2010     Lamur     68694999
2 Thu Mar 25 03:13:08 UTC 2010     Lamur     68694999
>库(jsonlite)
>优胜者姓名(优胜者)
[1] “获胜者”“投票”“startPrice”“lastVote.timestamp”“lastVote.user.name”“lastVote.user.user\u id”
>获胜者[,c(“获胜者”、“startPrice”、“lastVote.user.name”)]
winner startPrice lastVote.user.name
168694990拉穆尔
>获胜者[,c(“投票”)]
[[1]]
ts user.name user.user\u id
1星期四3月25日03:13:01 UTC 2010拉穆尔68694999
2星期四3月25日03:13:08 UTC 2010拉穆尔68694999

首先安装RJSONIO和RCurl软件包:

install.packages(“RJSONIO”)
安装.软件包(“(RCurl”)
软件包:

  • 图书馆(httr)
  • 图书馆(jsonlite)
我在将json转换为dataframe/csv时遇到问题。在我的案例中,我做到了:

Token <- "245432532532"
source <- "http://......."
header_type <- "applcation/json"
full_token <- paste0("Bearer ", Token)
response <- GET(n_source, add_headers(Authorization = full_token, Accept = h_type), timeout(120), verbose())
text_json <- content(response, type = 'text', encoding = "UTF-8")
jfile <- fromJSON(text_json)
df <- as.data.frame(jfile)
令牌导入httr包
获取url
打印resp的内容
使用content()获取resp的内容,但这次不指定
第二个论点。R自动判断出你在交易
使用JSON,并将JSON转换为命名的R列表


同样类似于这个问题:。嗨,Shane,尝试使用RJSON。我主要对必要的数据操作感兴趣。下面是一个我正在使用的JSON文件示例。example.JSON:[{“winner”:“68694999”,“votes”:[{“ts”:“Thu Mar 25 03:13:01 UTC 2010”,“user”:{“name”:“Lamur”,“user_id”:“68694999”},{“ts”:“Thu Mar 25 03:13:08 UTC 2010”,“user”:{“名称”:“Lamur”,“用户id”:“68694999”}],“lastVote”:{“时间戳”:1269486788526,“用户”:{“名称”:“Lamur”,“用户id”:“68694999”}},,“起始价格”:0},]警告:如果JSON文件确实很大,显然.so或.dll库不会处理它。一种更可取的格式是NetCDF,但一些组织不知道这个问题。
x$user$name,x$user$user\u id
现在应该是
x$user['name',x$user['user\u id']
。另外,
m是否有类似于JSON的convertToDataFrame函数(类似于XML包的函数)?PSA:getURL在RCurl包中。此外,
函数中的错误(type,msg,asError=TRUE):协议“s3”“libcurl绝对不支持或禁用!在筛选结果时,使用data.frames而不是List更容易!请注意,编辑是指对库的更新,而不是对R的更新。此更新更改了上一示例的最后一行,您仍然需要如上所述加载库。”。
json <- fromJSON(getURL('https://s3.amazonaws.com/bucket/my.json'))
> library(jsonlite)
> winners <- fromJSON("winners.json", flatten=TRUE)
> colnames(winners)
[1] "winner" "votes" "startPrice" "lastVote.timestamp" "lastVote.user.name" "lastVote.user.user_id"
> winners[,c("winner","startPrice","lastVote.user.name")]
    winner startPrice lastVote.user.name
1 68694999          0              Lamur
> winners[,c("votes")]
[[1]]
                            ts user.name user.user_id
1 Thu Mar 25 03:13:01 UTC 2010     Lamur     68694999
2 Thu Mar 25 03:13:08 UTC 2010     Lamur     68694999
Token <- "245432532532"
source <- "http://......."
header_type <- "applcation/json"
full_token <- paste0("Bearer ", Token)
response <- GET(n_source, add_headers(Authorization = full_token, Accept = h_type), timeout(120), verbose())
text_json <- content(response, type = 'text', encoding = "UTF-8")
jfile <- fromJSON(text_json)
df <- as.data.frame(jfile)
library(httr)
url <- "http://www.omdbapi.com/?apikey=72bc447a&t=Annie+Hall&y=&plot=short&r=json"
resp <- GET(url)
content(resp, as = "text")
content(resp)