处理CSV单元格值中的逗号和引号

时间:2019-05-20 19:58:52

标签: python csv

我正在使用python的csv阅读器,但某些列由于包含逗号或引号而无法处理。

如何获取正确的字符串?

例如,一个单元格说:

"['one', 'two', 'three']"

但是它给了我

"['one'

if os.path.exists(CSV_PATH):
    with open(CSV_PATH, 'r') as csv_file:
        reader = csv.reader(csv_file, delimiter=',', quotechar='|')
        field_list = []
        for row in reader:
            if not field_list:
                field_list = [c for c in row]
                continue

            d = dict.fromkeys(field_list)
            for header, col in zip(field_list, row):
                print(col)  

1 个答案:

答案 0 :(得分:1)

您可以将escapechar属性与一些前缀符号一起使用:

  

如果引用设置为QUOTE_NONE,则编写者使用一个单字符字符串转义定界符;如果双引号设置为False,则使用quotechar。阅读时,escapechar删除了以下字符的任何特殊含义。默认为无,这将禁用转义。

您还可以将doublequote属性与"符号一起使用:

  

控制出现在字段中的quotechar实例本身应如何被引用。当为True时,字符加倍。如果为False,则将escapechar用作quotechar的前缀。默认为True。

     

在输出中,如果双引号为False且未设置转义符,则在字段中找到quotechar时会引发错误。