cx_Oracle 插入数据报错 ORA :invalid number

在使用python 向oracle数据库中插入数据时报错 ORA :invalid number,报错语句为
execute = cursor.execute(insert_sql, value)

对字段进行了不同的测试发现是因为value 中包含了一个nan值,同时value中包含的None则没有问题,后来查了nan与None的区别,参:https://blog.csdn.net/nextdoor6/article/details/81042429?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

了解到往数据库中插入数据需要将nan 换成None,我的方法是:

value = tuple(
    [clob_data.getvalue(0) if x == 'CONTENT' else int(tmp[x]) if isinstance(tmp[x], numpy.int64) else  tmp[x] if not isinstance(tmp[x],float) else None if np.isnan(tmp[x]) else tmp[x] for
     x in insert_col])

希望遇到这个问题的朋友能够减少debug的时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值