空格可能是无意输入,也可能属于原始文本。清理时应区分字段两端的多余空白和字段内部的真实内容,并保留原值供复核。
先检查空格出现在哪里
号码前后有空白,和说明文字中用于分隔的空白,处理目的不同。定义每列的清理规则,避免把所有空格一口气删除,造成标题或链接难以阅读。
看似一样的文本不一定相同
从网页复制可能带来不同空白字符。发现重复检测结果异常时,可以检查文本表示,而不只凭肉眼;但不宜在没有记录的情况下对全部字符作任意转换。
清理结果需要可追踪
写明哪些列被修剪、哪些列保持原样。清理前后的比较应重点检查标识、网址和数字字段,确保没有把两个本来不同的值错误合并。
把方法用在一个具体场景
若某期数末尾多一个空格,可在保留原始字段后修剪再比对。若来源标题内有正常空格,则不应为了统一行宽而将标题连成一串。
沿着这个问题,可继续阅读CSV 字段有逗号或换行,为什么不能简单按字符拆?;若需要比较另一项资料,也可参考CSV 出现乱码或表头异常,先检查什么?。
| 要区分的事 | 保存或核对方式 |
|---|---|
| 位置 | 区分两端和内部 |
| 类型 | 检查不可见字符 |
| 变更 | 保留处理记录 |
常见问题
肉眼相同就一定是完全相同的字符串吗?
不一定,可能存在不同空白或字符,应在需要时检查实际表示。