for row in reader:
    if not any(cell.strip() for cell in row):
        continue

3 万行的客户文件导入后显示 3.3 万条,多出来的 3000 条所有字段都是空字符串,列表页翻到最后全是空白记录。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:文件末尾和中间有连续换行,按行切分后得到空字符串,循环只判断行是否存在。必填字段校验放在入库之后,空记录已经写进去了。

这次卡住的地方就在「CSV 空行入库」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

处理上按这个顺序:入库前判断整行是否全为空 是就跳过;手机号和姓名做非空校验 不通过直接记失败;清理已经写进去的空记录 按全字段为空的条件删。

确认没问题再收工,重新导入后总条数是 3 万,列表末尾没有空白行,按全字段为空统计的结果是 0。

作者 9823189