【数据库读写的不对称】

今天试着批量把csv写入数据库,数据量也不大,但是很奇怪就是总提交失败。查了一会儿,发现是有空值的数据行提交失败。

想想就很生气啊, 我从数据库读出来的时候,也是好多空值的,不过是访问别人给的接口。我把数据存下来,空值也没有做处理,我想着建表的时候也没说哪一列不能为空,主键不空就好了吧,然而现实是很无情地。

executemany()执行过程中,就会报错。

我仔细想了一下,可能是由于executemany提交的数据必须是tuple格式的,而如果有一个空值的化,就相当于tuple变长度了,所以会触发错误。

但是这样一来,我就只能把空值替换为一个常数,刚才换成了0。但是总觉得缺少空值的韵味,哎,越来越觉得,没有一个软件是好用的,没有一个数据库是好用的,然而自己有不会造自己的,所以还是自己的错。

慢慢进步吧,重要的是现在有时间研究啦,哈哈,前进一步有一步的风景~~

为了实现批量上传csv到mysql数据库,查阅了一些帖子,以下两篇挺值得参考,虽然帖子里有一些代码实测是错的,我不知道是不是版本问题。

推荐几个好的帖子吧:
1、https://blog.csdn.net/weixin_40837767/article/details/105872943,这篇帖子对于sql语句的封装给了我很大启发,虽然再最后的values这个变量的处理上和官方文档要求的tuple类型不一致,但整体上还是非常好的思路
2、https://blog.csdn.net/weixin_42703149/article/details/85120029,这篇帖子对execute()和executemany()的实例举得非常好。

对了,官方文档还是非常有帮助的,可以说最后实现批量上传,还是因为官方文档对executemany()给了明确的语法和类型说明。地址在这里:https://docs.oracle.com/cd/E17952_01/connector-python-en/connector-python-api-mysqlcursor-executemany.html

今天的收获就这么多。好像很久不写代码效率就很低,两天才能攻克一个小问题,希望随着代码写得多能够越来越快解决问题,实现自己的小愿望。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不争之德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值