You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas读取含双引号的CSV文件时列解析异常的解决方法

处理含双引号的CSV解析问题

首先,不建议手动用正则或自定义分隔符处理,CSV有明确的规范(RFC 4180),其中就包含“用双引号包裹含逗号/特殊字符的字段”的场景,专业的CSV解析库会自动处理这类情况,比自己写正则靠谱得多。

推荐方案:使用标准CSV解析库

以下是几种主流语言的实现示例:

Python

Python自带csv模块,无需额外安装,直接处理:

import csv

with open('your_file.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)  # 每个row是列表,对应每一列内容,双引号会被自动去除

比如你的第一行数据,会被解析成:
['3', 'Gunnar Nielsen Aaby', 'M', '24', 'NA', 'NA', 'Denmark', 'DEN']

JavaScript(Node.js)

可以用csv-parser(先执行npm install csv-parser安装):

const fs = require('fs');
const csv = require('csv-parser');

const results = [];
fs.createReadStream('your_file.csv')
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log(results); // 解析后的对象数组,自动处理双引号和特殊字符
  });

Java

使用OpenCSV库(需通过Maven引入依赖):

import com.opencsv.CSVReader;
import java.io.FileReader;
import java.util.List;

public class CSVParser {
    public static void main(String[] args) throws Exception {
        CSVReader reader = new CSVReader(new FileReader("your_file.csv"));
        List<String[]> rows = reader.readAll();
        for (String[] row : rows) {
            for (String col : row) {
                System.out.print(col + "\t");
            }
            System.out.println();
        }
        reader.close();
    }
}

手动处理方案(仅作应急,不推荐)

如果实在不想用库,可尝试两种思路:

思路1:全局移除双引号

仅适用于双引号仅用来包裹字段的场景(若字段内本身含双引号,会破坏数据):

with open('your_file.csv', 'r') as f:
    for line in f:
        cleaned_line = line.replace('"', '')
        columns = cleaned_line.strip().split(',')
        print(columns)

思路2:用正则匹配字段(复杂场景易出错)

用正则优先匹配双引号内的内容,再匹配普通字段:

import re

pattern = re.compile(r'(?<=")[^"]+(?=")|[^,]+')
with open('your_file.csv', 'r') as f:
    for line in f:
        columns = pattern.findall(line.strip())
        print(columns)

注意:如果字段内有转义双引号(比如"He said ""Hello"""),该正则会失效,因此仍优先推荐标准库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:09:32