在R中读取单键多值映射JSON文件时解析失败求助
问题描述
我有一个名为data.json的文件,内容如下:
{ "ID":["1","2","3","4","5","6","7","8" ], "Name":["Rick","Dan","Michelle","Ryan","Gary","Nina","Simon","Guru" ], "Salary":["623.3","515.2","611","729","843.25","578","632.8","722.5" ], "StartDate":[ "1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","5/21/2013", "7/30/2013","6/17/2014"], "Dept":[ "IT","Operations","IT","HR","Finance","IT","Operations","Finance"] }
我在RStudio中已安装rjson包,使用如下代码:
library("rjson") myData <- fromJSON(file="data.json") print(myData)
预期fromJSON()会将JSON文件内容读取为R对象myData,但执行时出现错误:
Error in fromJSON(file = "data.json") : not all data was parsed (0 chars were parsed out of a total of 3 chars)
我已验证该JSON文件结构有效,参考相关问题解决方案后仍未解决,恳请指出问题所在。
解决办法
1. 检查文件路径是否正确
错误提示里的"3 chars"说明R读取到的内容极短,大概率是文件路径错误:
- 运行
getwd()查看当前工作目录,确认data.json存放在该目录下; - 或者直接使用文件的绝对路径,示例:
myData <- fromJSON(file="C:/Your/Full/Path/to/data.json")
2. 切换到更稳定的JSON处理包
rjson对部分JSON格式的解析兼容性有限,推荐使用主流的jsonlite包:
- 安装并加载包:
install.packages("jsonlite") library(jsonlite) - 读取JSON文件:
myData <- fromJSON("data.json") print(myData)
jsonlite对标准JSON的支持更完善,能避免很多解析异常。
3. 确认文件编码为UTF-8
如果JSON文件编码非UTF-8,可能导致解析失败:
- 用文本编辑器打开
data.json,将编码转换为UTF-8后重新尝试读取。
内容的提问来源于stack exchange,提问作者Mahesh
相关产品推荐
相关产品推荐

