1
Trim21 2017-08-16 02:15:19 +08:00
|
2
jahan OP 现在主要是大量的数据导出文件,很多入库时候发现错误,想通过脚本验证下数据是否能够顺利入库。
|
4
binux 2017-08-16 06:12:42 +08:00 via Android
你需要定义什么是正确,这就够你受得了
|
5
NoAnyLove 2017-08-16 07:49:40 +08:00
用的什么数据库?遇到这种问题,我一般的解决方法是,建个零时的数据库,直接导入看效果,比解析格式什么的简单多了
|
6
jahan OP @NoAnyLove DB2;
表太过巨大了,合计表导入都要 4T,要不然临时表是个好办法。。 导入了发现很多因为编码问题或者出现了异常字符,失败。 而且有的是增量,处理起来很麻烦。 曾经尝试 split 文件到小文件,比如 50 万行一个文件,结果发现有些文件一分割就乱码了。 而这种文件基本上导入也有问题,但是如果打开看,基本看不到有什么不同。用 readline 来看,基本是遇到了不是 utf8 的字符。 |
7
PythonAnswer 2017-08-16 11:22:07 +08:00 via Android
找出经常出现的编码种类。你这个库,不会用到超过 5 种以上的编码吧。然后再想办法。
|
8
jahan OP @PythonAnswer 标准编码是 Utf8,其他的字符都是非法。怎么找到这些非法字符? readline 读到非 utf8 就报异常了。
|
9
BOYPT 2017-08-16 11:31:29 +08:00
@jahan #8 那就不要 readline 呀,直接 read 进去一段数据,然后尝试按 utf8 decode,如果出现异常就是有问题了。
|
10
PythonAnswer 2017-08-16 11:32:25 +08:00 via Android
报异常时,用其它编码接住啊
|
11
NoAnyLove 2017-08-16 11:56:20 +08:00
按照 bytes 读入,然后尝试从 utf-8 解码是一个方法,不过有个问题是,有可能可以解码,但是解码出来的字符不一定是有意义或者能够导入数据库的。
|