python3访问oracle有少数乱码怎么办

ckc 2020-11-24 03:17:04
python3,使用cx_oracle访问oracle,数据库和环境编码都是gbk
多数数据都没问题,有少数数据是历史遗留问题,地址什么的里面本来就有乱码,
这样在fetchone的时候就会报错,有什么办法解决?
类似的代码在python2的时候就没问题,迁移到python3居然有这么大的坑,真是挺无语的。
...全文
140 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckc 2020-11-25
  • 打赏
  • 举报
回复
引用 3 楼 陈年椰子 的回复:
试试 把 ascii 码小于 32 的, 全部替换为空。

数据库里的数据不能动。源文件里的东西也控制不了。
陈年椰子 2020-11-24
  • 打赏
  • 举报
回复
试试 把 ascii 码小于 32 的, 全部替换为空。
ckc 2020-11-24
  • 打赏
  • 举报
回复
引用 1 楼 陈年椰子 的回复:
看看报错信息是什么, 是不是引号还是 \ 字符引起的。 如果是,可以考虑 select 地址字段 时,直接用replace 消除掉这两个符号。


另外,可以考虑做下数据清洗, 把历史数据做个处理, 一了百了。


不是引号也不是什么特殊符号,就是极少数数据有乱码,比如“????????”这样。
数据太重要,而且错的比较多,不敢改。再说就算改了将来也有可能会有新的这种乱码啊。
python3这种真的挺麻烦的,类似的事情还比如一个gbk的文本文件,需要读进来做一些处理,然而有少数行是乱码,读入的时候就会出错,要是按二进制读进来,处理的时候又挺麻烦。
陈年椰子 2020-11-24
  • 打赏
  • 举报
回复
看看报错信息是什么, 是不是引号还是 \ 字符引起的。 如果是,可以考虑 select 地址字段 时,直接用replace 消除掉这两个符号。 另外,可以考虑做下数据清洗, 把历史数据做个处理, 一了百了。

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧