解析引号和转义字符 CSV 文件



我需要将大量数据导入SQL中,输出文件(文本(是从ABAP程序生成的UTC-8,我可以在其中定义引号和转义字符,默认情况下我使用:

为转义字符串

"(双引号(引用字符

;(分号(分隔列。

我的问题在于大多数类型为文本的列都包含双引号或转义字符,并且当尝试将其导入SQL数据库时,由于列的数据分配错误,接口失败。

我设法避免了下面的 python scrip 的 ,但我正在努力解决双引号,您能提出任何想法来替换引号字符内的双引号吗?

像 = 香蕉来自"厄瓜多尔"这样的文本字段给我带来了很大的混乱,因为 CSV 文件上的数据存储为"来自"厄瓜多尔"的香蕉"

import csv
filename = "0180914_074626.csv"
with open(filename, 'r', encoding='utf8', errors='ignore') as inputfile, 
open(filename + '.log.csv', 'w', encoding="utf8") as outputfile_log:
w = csv.writer(outputfile_log, delimiter=';', quotechar='"', lineterminator='n')
for record in csv.reader(inputfile):
#print(record)
w.writerow(tuple(s.replace("n", '-') for s in record))

了解如何将 BCP 与格式化文件一起使用。

然后,您可以指定,例如,最后一列以双引号后跟 CRLF 终止。 其他列以双引号结尾,后跟分号。

对于每一列,将忽略与构成该列的终止符的字符组合不匹配的任何字符。

最新更新