如何使用 python 在 csv 文件中写入包含逗号的列表?

How to write list which contains comma in csv file using python?

列表包含以下数据,

['Obama', 'John Barta', 'IN, 33, 33', '444', '']

我正在尝试使用以下代码将此数据写入 csv 文件,

with open(output_file, 'w') as writeFile:
    writer = csv.writer(writeFile, delimiter=',', quotechar="'", quoting=csv.QUOTE_NONE)
    writer.writerow(colValues)

但是在 csv 文件中得到低于输出,

"Obama","John Barta",'"IN, 33, 33"',"444",""

我不想在“"IN, 33, 33"”之间使用单引号。

期望输出:

"Obama","John Barta","IN, 33, 33","444",""

如果您从 csv.writer 调用中删除 quotechar 参数,它应该会为您提供所需的行为。例如,您的函数调用将变为

writer = csv.writer(writeFile, delimiter=',', quoting=csv.QUOTE_NONE)

quotechar 参数是 delimiter 或其他特殊字符出现时放置的内容。

从您的样本输出来看,您似乎想要引用所有字段。所以最直接的方法是:

writer = csv.writer(writeFile, delimiter=',',
               quotechar='"', quoting=csv.QUOTE_ALL)

我还将 quotechar 更改为双引号,因为它也在您的示例输出中。

也许这太简单了,但默认写入,读取returns原始列表:

import csv

col_values = ['Obama', 'John Barta', 'IN, 33, 33', '444', '']

with open('data.csv', 'w') as writeFile:
    writer = csv.writer(writeFile)
    writer.writerow(col_values)

#=> Obama,John Barta,"IN, 33, 33",444,

with open('data.csv', 'r') as f:
    reader = csv.reader(f)
    p_list = list(reader)
print(p_list)
#=> [['Obama', 'John Barta', 'IN, 33, 33', '444', '']]