作者amygm307 (簡單點ˇ)
看板R_Language
標題[問題] R讀json檔遇到的問題
時間Mon May 23 12:45:40 2016
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
我目前用jsonlite來讀json檔
但是因為我的json檔裡面每個物件是用enter隔開
(用記事本打開看到的是空格,但匯入excel卻自動分列顯示,所以應該是用enter隔開)
所以讀入時會有問題
(我有嘗試複製一小段,把每個物件中間改成逗號,就可以跑)
但是我不知道要怎麼去改每個物件中間的分隔方式
問google大神也找不到可以解決的方法
(也有可能我是新手,所以沒有輸入正確的關鍵字)
所以來問版上的大大們了!
感謝各位!
[程式範例]:
以下我輸入的程式碼:
j = file.choose()
y = fromJSON(j, flatten = FALSE)
Error in feed_push_parser(readBin(con, raw(), n), reset = TRUE) :
parse error: after array element, I expect ',' or ']'
23.92,-28.13],"eye":"right"} {"ts":114513748,"s":0,"pd":3.79
(right here) ------^
出現了中間分隔的錯誤
我的json檔大致長的像下面那樣
{"test": [{"ts":114513748,"s":0,"pc":[-30.90,-23.92,-28.13],"eye":"right"} {"ts":114513748,"s":0,"pd":3.79,"eye":"right"}]}
[環境敘述]:
R version 3.2.3 (2015-12-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950
[2] LC_CTYPE=Chinese (Traditional)_Taiwan.950
[3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Traditional)_Taiwan.950
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] jsonlite_0.9.20
loaded via a namespace (and not attached):
[1] tools_3.2.3 curl_0.9.4
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.221.245
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1463978742.A.479.html
※ 編輯: amygm307 (36.225.221.245), 05/23/2016 12:47:28
→ celestialgod: 最簡單的解法就是上面文章的strsplit + sapply 05/23 13:25
→ amygm307: 請問上面連結文章中fromJSON是哪個套件?我照著他的方式 05/23 14:48
→ amygm307: 還是不work 05/23 14:49
→ amygm307: src = file.choose() strsplit(src, "\n")%>%sapply(fr 05/23 14:50
→ amygm307: 出現的error是一樣的,然後試了下面的作法 05/23 14:51
→ amygm307: 顯示 Couldn't resolve host name 05/23 14:52
→ celestialgod: src <- paste0(readLInes(file.choose()),collapse= 05/23 15:17
→ celestialgod: '\n') 05/23 15:17
推 Wush978: 我把你的文字丟到JSON validator上,那本來就有錯... 05/23 18:57
→ Wush978: 所以不是R的問題,是你資料格式不正確的問題吧 05/23 18:58