Python CSV:字段开头包含引号

3 投票
2 回答
4960 浏览
提问于 2025-04-17 12:39

我正在尝试读取一个CSV文件,其中有一行内容如下:

test,"test,"test,test,test,test

这里有个问题,关于引号(文件里有六个字段,但读取出来却只有五个字段,因为"test,"这个部分被当作一个字段来处理了)。

我尝试过修改这个条目,像下面这样,但我仍然无法正确读取引号:

test,""test,""test,test,test,test  # quotation marks disappear when the entry is read.

test,\"test,\"test,test,test,test  # backslashes are also retrieved; escaping doesn't seem to work.

我读取CSV文件的方式是这样的:

info_source = csv.reader(open('.info.csv'), skipinitialspace=True)

for row in ling_info_source:
    data = row[1].strip()
    ...

2 个回答

3

你可以在调用 reader() 时,添加一个参数 quoting=csv.QUOTE_NONE

3

默认情况下," 是 Python 的 csv 模块中的 引用字符。如果你想关闭这个默认设置,可以使用

csv.reader(open('.info.csv'), skipinitialspace=True, quotechar=None)

。你给出的例子会导致记录变成

['test', '"test', '"test', 'test', 'test', 'test']

撰写回答