You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中pyreadr读取RData文件如何设置使用latin编码

pyreadr读取RData指定latin编码的可行解决方案
  • 方案1:配置pyreadr全局编码参数(推荐,无额外依赖)
    pyreadr虽然没有在read_r函数中提供encoding入参,但提供了模块级的全局编码配置项,直接修改该配置即可生效,不需要改动源码:

    import pyreadr
    # 全局指定解码编码为latin1,优先级高于默认的utf-8
    pyreadr.custom_encoding = "latin1"
    # 正常读取目标文件
    r_data = pyreadr.read_r('Input/myFile.RData')
    

    该配置对后续所有pyreadr.read_r调用都生效。

  • 方案2:升级pyreadr后使用方案1
    0.4.0之前的旧版本pyreadr没有开放custom_encoding配置项,先执行以下命令升级到最新稳定版即可:

    pip install --upgrade pyreadr
    

    升级完成后按照方案1配置编码即可正常读取文件。

  • 方案3:在R侧预先转换文件编码
    如果不方便调整Python侧的包配置,可以先在R环境中将原文件转存为UTF-8编码版本,再回到Python侧读取:

    # R控制台执行
    # 加载原latin编码的RData文件
    load("Input/myFile.RData")
    # 将工作空间所有对象转码后保存为UTF-8编码文件
    save(list = ls(), file = "Input/myFile_utf8.RData", encoding = "UTF-8")
    

    转码完成后,Python侧直接读取转存后的myFile_utf8.RData,不需要额外调整编码配置就能正常加载。

报错中提到的0xb0字节是latin1编码里的度数符号(°),不属于UTF-8编码的合法起始字节,因此触发解码错误,使用latin1编码读取完全匹配该文件的字符编码规则。

内容的提问来源于stack exchange,提问作者userLx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:09:46