我有一個逗號分隔的檔案,它在實際欄位值中也包含逗號,如下所示:
foo,bar,"foo, bar"
這個檔案非常大,所以我想知道 python 中是否有辦法在 ever 欄位周圍放置雙引號:
eg: "foo","bar","foo, bar"
還是只是整體更改分隔符?
eg: foo|bar|foo, bar
最終目標:目標是最終將此檔案加載到 sql server 中。鑒于檔案批量插入的大小是唯一可行的加載方法,但由于我擁有的 ssms 版本,我無法指定文本限定符/欄位參考。
這讓我相信剩下的唯一方法是對源檔案進行一些預處理。
uj5u.com熱心網友回復:
更改分隔符只需要決議和重新編碼資料。
with open("data.csv") as input, open("new_data.csv", "w") as output:
r = csv.reader(input, delimiter=",", quotechar='"')
w = csv.writer(output, delimiter="|")
w.writerows(r)
鑒于您的輸入檔案是一個相當標準的 CSV 版本,您甚至不需要將分隔符和引號引數指定為reader; 默認值就足夠了。
r = csv.reader(input)
uj5u.com熱心網友回復:
這不是不一致的報價。如果 CSV 檔案中的值包含逗號或新行,則會向其中添加引號。這應該不是問題,因為所有標準的 CSV 閱讀器都可以正確讀取它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375602.html
上一篇:從串列中設定列名-Python
