如何将Json转换为R

时间:2016-04-06 14:48:50

标签: json r data-analysis

我想将我的json数据转换为R中的数据框。这是我到目前为止所做的:

library("rjson")
result <- fromJSON(file ="mypath/data.json")
json_data_frame <- as.data.frame(result)

但是,它出现了这样的错误:

  

data.frame出错(company_id =“12345678”,country_name =“China”,   :参数意味着不同的行数:1,2,0

我也尝试了以下代码:

library("rjson")
result <- fromJSON(file ="mypath/data.json")
final_data <- do.call(rbind, result)

出现了这个错误:

  

警告消息:In(function(...,deparse.level = 1):number of   结果列不是矢量长度的倍数(arg 3)

我不知道这里发生了什么,我该如何解决它。如果我能得到一些帮助,我将不胜感激。

以下是我的json数据的一些内容:

{“business_id”:“1234567”,“Country_name”:“China”,“hours”:{“Monday”:{“close”:“02:00”,“open”:“11:00”} ,“星期二”:{“关闭”:“02:00”,“开放”:“11:00”},“星期五”:{“关闭”:“02:00”,“开放”:“11:00 “},”星期三“:{”关闭“:”02:00“,”打开“:”11:00“},”星期四“:{”关闭“:”02:00“,”打开“:”11 :00“},”星期日“:{”关闭“:”02:00“,”打开“:”12:00“},”星期六“:{”关闭“:”02:00“,”打开“: “12:00”}},“open”:true,“categories”:[“Bars”,“Nightlife”,“Restaurants”],“city”:“Beijing”,“review_count”:5,“name”: “陈氏酒吧”,“街区”:[“西区”],“属性”:{“外卖”:真实,“Wi-Fi”:“免费”,“好”:{“甜点”:假,“latenight”:假,“午餐”:虚假,“晚餐”:虚假,“早餐”:虚假,“早午餐”:虚假},“适合跳舞”:虚假,“噪音等级”:“响亮”,“采取预订“:假,”交付“:虚假,”氛围“:{”浪漫“:虚假,”亲密“:虚假,”优雅“:虚假,”时髦“:虚假,”潜水“:虚假,”旅游观光“ :false,“时髦”:虚假,“高档”:虚假,“随意”:fals e},“欢乐时光”:真实,“停车”:{“车库”:虚假,“街道”:虚假,“验证”:虚假,“很多”:虚假,“代客”:虚假},“有电视” :真实,“户外座位”:虚假,“服装”:“随意”,“酒精”:“full_bar”,“服务员服务”:真实,“接受信用卡”:真实,“对孩子有益”:虚假,“适合团体“:真实,”迎合“:真实,”价格范围“:1},”类型“:”商业“}

2 个答案:

答案 0 :(得分:6)

尝试使用jsonlite库。它对我有用

fromJSON(temp) %>% as.data.frame

输出以下内容   enter image description here

如果你想要清单。

fromJSON(temp) 

答案 1 :(得分:0)

加载jsonlite包

library(jsonlite)

wine_json是JSON

wine_json <- '{"name":"Chateau Migraine", "year":1997, "alcohol_pct":12.4, "color":"red", "awarded":false}'

将wine_json转换为列表:

wine <- fromJSON(wine_json)

葡萄酒的印刷结构

str(wine)