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

ckc 2020-11-24 03:17:04
python3,使用cx_oracle访问oracle,数据库和环境编码都是gbk
多数数据都没问题,有少数数据是历史遗留问题,地址什么的里面本来就有乱码,
这样在fetchone的时候就会报错,有什么办法解决?
类似的代码在python2的时候就没问题,迁移到python3居然有这么大的坑,真是挺无语的。
...全文
97 4 打赏 收藏 举报
写回复
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 消除掉这两个符号。 另外,可以考虑做下数据清洗, 把历史数据做个处理, 一了百了。
  • 打赏
  • 举报
回复
相关推荐
发帖
脚本语言

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • ITBOB • 鲍勃
加入社区
帖子事件
创建了帖子
2020-11-24 03:17