2
我有,其行是格式如下一個JSON文件:JSON格式CSV格式轉換,特殊情況
{"checkin_info": {"11-3": 17, "8-5": 1, "15-0": 2, "15-3": 2, "15-5": 2, "14-4": 1, "14- 5": 3, "14-6": 6, "14-0": 2, "14-1": 2, "14-3": 2, "0-5": 1, "1-6": 1, "11-5": 3, "11-4": 11, "13-1": 1, "11-6": 6, "11-1": 18, "13-6": 5, "13-5": 4, "11-2": 9, "12-6": 5, "12-4": 8, "12-5": 5, "12-2": 12, "12-3": 19, "12-0": 20, "12-1": 14, "13-3": 1, "9-5": 2, "9-4": 1, "13-2": 6, "20-1": 1, "9-6": 4, "16-3": 1, "16-1": 1, "16-5": 1, "10-0": 3, "10-1": 4, "10-2": 4, "10-3": 4, "10-4": 1, "10-5": 2, "10-6": 2, "11-0": 3}, "type": "checkin", "business_id": "KO9CpaSPOoqm0iCWm5scmg"}
等等....它有8282項是這樣。
我想將它轉換成像這樣的csv文件。
business_id "0-0" "1-0" "2-0" "3-0" ….. "23-0" "0-1" ……. "23-1" …….. "0-4" …… "23-4" …… "23-6"
1 KO9CpaSPOoqm0iCWm5scmg 2 1 0 1 NA 1 1 NA NA NA NA NA 6 NA 7
2 oRqBAYtcBYZHXA7G8FlPaA 1 2 2 NA NA 2 NA NA 1 NA 2 NA 2 NA 2
我嘗試這樣做的代碼:
urlc <- "C:\\Users\\Ayush\\Desktop\\yelp_training_set\\yelp_training_set_checkin.json"
conc = file(urlc, "r")
inputc <- readLines(conc, -1L)
usec <- lapply(X=inputc,fromJSON)
for (i in 1:8282)
{
tt<-usec[[i]]$checkin_info
bb<-toString(tt)
usec[[i]]$checkin_info<-bb
}
dfc <- data.frame(matrix(unlist(usec), nrow=length(usec), byrow=T))
write.csv(dfc,file="checkin_tr.csv")
將其轉化成形式是這樣的:上述
X1
business_id
1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 1
D0IB17N66FiyYDCzTlAI4A
1, 1, 2, 1, 1
HLQGo3EaYVvAv22bONGkIw
1, 1, 1, 1
J6OojF0R_1OuwNlrZI-ynQ 2, 1, 2, 1, 2, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 2, 1, 2
但我想在列 「X1」 的條目在單獨的列,如圖所示在第一個表格中。
我該怎麼做?請幫助
將嘗試,並會讓你知道它是否工作。非常感謝。 –
這裏'tt'只代表我的json文件的一行。我的文件有8282行。 所以你可以修改你的代碼,並使用'url'來寫它,就像我已經完成了一樣。否則我會感到困惑。無法只訪問一行。我試過這個。 urlc < - 「C:\\用戶\\ AYUSH \\桌面\\ yelp_training_set \\ yelp_training_set_checkin.json」 濃度=文件(urlc, 「R」) inputc < - readlines方法(濃,-1L) TT < - lapply(X = inputc,fromJSON) data.frame(business_id = TT $ business_id, do.call(rbind,列表(TT $ checkin_info))) 但是該數據幀是NULL。 –
@ user2474387我使用新的解決方案編輯我的答案。 – agstudy