簡體   English   中英

解析引號和轉義字符 CSV 文件

[英]parsing quote and escape characters CSV file

我需要將大量數據導入 SQL,輸出文件(文本)是從 ABAP 程序生成的 UTC-8,我可以在其中定義引號和轉義字符,默認情況下我使用:

\\作為轉義字符串

" (雙引號)來引用字符

; (分號)來分隔列。

我的問題在於,大多數文本類型的列都包含雙引號或轉義字符,當嘗試將其導入 SQL 數據庫時,由於列的數據分配錯誤,接口失敗。

我設法避免使用下面的 python 腳本使用 \\n 但我正在努力處理雙引號,你能提出任何想法來替換引用字符內的雙引號嗎?

像=來自“厄瓜多爾”的香蕉這樣的文本字段讓我一團糟,因為 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。 其他列以雙引號和分號結尾。

對於每一列,與組成該列的終止符的字符組合不匹配的任何字符都將被忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM