簡體   English   中英

如何在將 csv 加載到數據庫時在 try except 塊中多次捕獲單個異常

[英]How to capture single exception multiple times in try except block while loading a csv to database

我正在嘗試將 csv 文件加載到 Mysql。 該文件有一百萬條記錄,所以我正在批量插入 1000 條。我正在使用 python 庫 sqlalchemy 和 pymysql。 第一批插入后,我收到錯誤

pymysql.err.InternalError) (1366, "不正確的字符串值:'\xC2\x83\xC2\xB7\xC3\xA5...'

對於第 50 行的“FHCNM”列。我想跳過該特定批次並插入剩余批次。 我用 python 中的 try..except..finally 塊來做到這一點。 在這里,我在不同批次收到相同的錯誤(pymysql.err.InternalError)。 如何多次處理單個異常? 現在,我正在嘗試

def functnname():
   try:
         #my code to insert data to mysql
   except:
         #to handle my error first time
         pass
   finally:
         #continue with next batch insertions
   return
try:
   functnname()
except:
   #to handle my error second time
finally:
    functnname()

我正在嘗試這樣。 我不知道它是否有效。 任何更有效的方式將不勝感激。 以及如何首先處理上述錯誤以及之后如何插入失敗的批次。 Python 3.x。

如果不單獨插入每個元素,在 python 代碼中很難做到這一點,但這會極大地損害您的性能。 使用 mysql 功能在批量插入期間忽略/處理錯誤。

暫無
暫無

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

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