Pandas导出DataFrame为JSON时UTF-8编码错误问题解决
解决Pandas写入JSON时的OverflowError(多字符分隔符场景)
问题场景
执行以下代码将DataFrame写入JSON文件时,触发OverflowError: Unsupported UTF-8 sequence length when encoding string错误:
tempfile.write(bytes(df.to_json(orient="records", lines=True, default_handler=str ),encoding="utf-8"))
常规添加default_handler=str的方案无法解决问题,且该错误仅在处理以多字符分隔符“||”分隔的CSV文件时出现。读取CSV的代码配置如下:
- 指定
engine='python' - 分隔符设为正则表达式
r"\|\|"
排查过程
调试发现错误在处理首行数据时就触发,进一步验证后确认:问题根源是Pandas 0.23版本对多字符分隔符的支持存在缺陷,读取过程中引入了无效的UTF-8序列,导致后续写入JSON时编码失败。
解决方案
将Pandas版本升级至1.1及以上版本,即可修复多字符分隔符的读取问题,进而解决JSON写入时的编码错误。
内容的提问来源于stack exchange,提问作者Leonard Niedermayer
相关产品推荐
相关产品推荐

