pyreadr无法读取RData文件:导入后返回空字典的问题排查
解决pyreadr读取RData返回空字典的问题
可能的原因及解决方案
1. Python版本与pyreadr版本不兼容
你的Python版本是3.7.11,而pyreadr从0.5.0版本开始不再支持Python3.7。如果安装的是较新版本的pyreadr,就会出现读取失败的情况。
解决方法:安装兼容Python3.7的pyreadr旧版本,执行以下命令:
pip uninstall pyreadr pip install pyreadr==0.4.4
2. 尝试使用绝对路径读取文件
尽管你确认文件在当前目录,但相对路径可能因工作目录配置问题导致读取异常。可以改用文件的绝对路径测试:
import pyreadr # 替换为你的文件实际绝对路径 result = pyreadr.read_r('/Users/你的用户名/目标文件夹路径/data.RData') print(result.keys())
3. 改用saveRDS保存R对象
R的save()函数会保存环境中的指定对象集合,而saveRDS()是单独序列化单个对象,pyreadr对这种格式的支持更稳定。修改R中的保存代码:
x <- c(0.20,0.30,0.27,0.23) data <- list("a", 5.1, x) saveRDS(data, file="data.rds")
然后在Python中读取该rds文件:
import pyreadr result = pyreadr.read_r('data.rds') print(result.keys())
4. 验证RData文件完整性
先在R中重新读取文件,确认文件本身无损坏:
load("data.RData") print(data)
如果能正常输出数据,说明文件没问题,问题集中在Python端的读取环节。
内容的提问来源于stack exchange,提问作者user1222
相关产品推荐
相关产品推荐

