我正在使用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)
答案 0 :(得分:1)
您可以将escapechar属性与一些前缀符号一起使用:
如果引用设置为QUOTE_NONE,则编写者使用一个单字符字符串转义定界符;如果双引号设置为False,则使用quotechar。阅读时,escapechar删除了以下字符的任何特殊含义。默认为无,这将禁用转义。
您还可以将doublequote属性与"
符号一起使用:
控制出现在字段中的quotechar实例本身应如何被引用。当为True时,字符加倍。如果为False,则将escapechar用作quotechar的前缀。默认为True。
在输出中,如果双引号为False且未设置转义符,则在字段中找到quotechar时会引发错误。