首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在尝试之外块中多次捕获单个异常,同时将csv加载到数据库

问如何在尝试之外块中多次捕获单个异常,同时将csv加载到数据库
EN

Stack Overflow用户
提问于 2020-05-02 08:04:49
回答 1查看 91关注 0票数 0

我正在尝试将csv文件加载到Mysql。该文件有一百万条记录,所以我正在进行1000的批量插入。我使用python库sqlalchemy和pymysql。在第一批插入后,我得到了错误

(

pymysql.err.InternalError) (1366年,“不正确的字符串值:‘\xC2\xC2\xB7\xC3\xA5.’

第50行的“FHCNM”栏。我想跳过这个特定的批次,插入剩下的批。我是用python中的try..except..finally块来实现这一点的。在这里,我在不同的批中得到相同的错误(pymysql.err.InternalError)。如何多次处理单个异常?现在,我试着

代码语言:javascript
复制
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()

我要这样试一试。我不知道它是否有效。任何更有效的方式都将不胜感激。以及如何首先处理上述错误,以及如何插入失败的批处理。Python3.x

EN

回答 1

Stack Overflow用户

发布于 2020-05-02 08:16:31

如果不单独插入每个元素,在python代码中很难做到这一点,但这将大大损害您的性能。在批量插入过程中使用mysql特性来处理ignore / handle错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61556207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档