You need to enable JavaScript to run this app. CSV导入BigQuery报错:双引号与重复分隔符问题怎么解决?
优惠活动
大模型
产品
解决方案
定价
更多

CSV导入BigQuery报错:双引号与重复分隔符问题怎么解决?

BigQuery加载非标准CSV报错解决方案

问题根因

Error: Data between close double quote (") and field separator.
该报错的触发原因是你的CSV文件存在两处不符合标准规范的格式问题:

  1. 双引号字段内部的嵌套双引号未完成标准化转义,部分字段如"NO wonder it is good"B""中出现了裸双引号,解析器会误判此处为字段结束,后续的B字符被识别为引号外的非法内容
  2. 部分行存在多余的分隔符,字段数与表头不匹配

解决方案

方案1:调整加载配置兼容非标准格式(快速验证)

在原有的LoadJobConfig中补充2个核心参数即可适配大多数非标准CSV场景,修正后的配置如下:

job_config = bigquery.LoadJobConfig(
        autodetect=True,
        source_format=bigquery.SourceFormat.CSV,
        quote_character = '"',
        escape_character = "\\", # 识别反斜杠作为转义符,正确解析\"形式的嵌套引号
        encoding='UTF-8',
        field_delimiter=';',
        write_disposition="WRITE_APPEND",
        skip_leading_rows=1,
        allow_jagged_rows=True, # 允许行字段数与表头不一致,缺失字段自动补NULL,多余字段自动忽略
        allow_quoted_newlines=True # 可选配置,若引号字段内存在换行可添加该参数
    )

方案2:预处理CSV文件(根治问题)

如果调整配置后仍有报错,建议先清洗源CSV文件:

  • 统一转义规则:所有嵌套在双引号内部的双引号,统一替换为两个连续双引号(RFC 4180标准写法),比如将"NO wonder it is good"B""修正为"NO wonder it is good""B"""
  • 校验每行字段数,移除多余的分隔符,保证每行的字段数与表头完全匹配
  • 空值字段明确占位,避免出现连续无意义的分隔符

方案3:外部表中转加载(无需修改源文件)

如果无法修改源文件,可通过两步加载规避格式问题:

  1. 先将CSV创建为BigQuery外部表,配置时不指定quote_character,所有字段全部设置为STRING类型,先把原始内容读入BigQuery
  2. 用SQL字符串函数对数据做拆分、转义、清洗处理,处理完成后再写入正式业务表

内容的提问来源于stack exchange,提问作者exploding_data

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 02:00:05