CSV Reader 从第一个字段中删除双引号

CSV Reader Removing Double Quotes from First Field

我有一个文件,其中包含制表符分隔 header 和如下行:

ID  Field1
test1   "A","B"

这是我的解析脚本。

with open(dataFile) as tsv:
    for line in csv.reader(tsv, delimiter='\t'):
        print(line)

并且输出:

['ID', 'Field1']
['test1', 'A,"B"']

我不明白为什么要去掉第二个字段第一个引用项上的双引号。我为 csv reader 尝试了不同的方言和设置但没有成功。

看来您是在分隔制表符而不是在逗号上分隔,我会更改您的代码以反映这一点。

您只需通过 csv.QUOTE_NONE 选项告诉 csv.reader 忽略引号:

with open(dataFile) as tsv:
    for line in csv.reader(tsv, delimiter='\t', quoting=csv.QUOTE_NONE):
        print(line)

输出:

['ID', 'Field1']
['test1', '"A","B"']

csv reader 的默认引号字符是双引号,因此它会自动删除它们。将其更改为类似“|”的内容会解决你的问题。你可以这样做:

with open(dataFile) as tsv:
    for line in csv.reader(tsv, delimiter='\t', quotechar='|'):
        print(line)

来自https://docs.python.org/3/library/csv.html#csv.Dialect.quotechar

Dialect.quotechar

一个单字符字符串,用于引用包含特殊字符(例如定界符或引号字符)或包含换行符的字段。它默认为 '"'。

编辑:

您也可以使用 quoting=csv.QUOTE_NONE 选项来禁用引用。