首页/数据/数据工程与 ETL 速查/CSV 处理的常见陷阱
本包目录(311 条)
管道基础52 条
Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条CDC 与同步53 条

CSV 处理的常见陷阱

CSV 看起来简单,实际布满陷阱:分隔符与引号转义、编码与 BOM、换行符、空值与 NULL 的表示、超大数字精度。入库前统一规范比事后清洗省力。

陷阱

问题表现处理
引号转义字段内含逗号/引号被切错列按 RFC 4180 规则处理,使用成熟库
编码中文乱码或出现 BOM 前缀统一 UTF-8,明确是否带 BOM
空值语义空字符串与 NULL 混淆入库前定义缺失值表示法
大数字Excel 打开身份证/订单号变科学计数以文本读取,不要用表格软件直开

Python 写出规范 CSV

Python 写出规范 CSV
import csv
with open('out.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['id', 'name', 'note'])
    writer.writerow(['1001', '其其', '含,逗号 与 "引号"'])
多个系统约定不同(有的 NULL 写空、有的写 \N),链路两端必须对齐缺失值表示。

易错点

  • 默认方言(分隔符/引号)不同会导致解析偏差,读入时显式声明 dialect
  • 用逐行 split(',') 解析 CSV 在含引号字段时必然出错,直接用 csv 库

数据来源与参考

  • RFC 4180 Common Format and MIME Type for CSV Files
  • Python 官方文档 csv 模块
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌