flask 中 使用表格与数据库进行主键更新

代码如下

path = os.getcwd() + '/file/package'
        file_dir = os.path.join(os.getcwd(), path)
        file_path = os.path.join(file_dir, file.filename)
        file.save(file_path)
        wb = xlrd.open_workbook(str(file_path))
        sh = wb.sheet_by_name('simcard')
        max_obj = []
        max_obj.clear()
        iccid = []
        iccid.clear()
        for i in range(1, sh.nrows):
            iccid.append(sh.row_values(i)[0])
        card_obj = Card.query.filter(
            Card.iccid.in_(iccid)
        ).all()
        head = [*sh.row_values(0), "id"]
        for i in range(len(card_obj)):
            for num in range(i, sh.nrows):
                msg = [str(s) if not str(s).endswith(".0") else str(s).split('.')[0] for s in sh.row_values(num)]
                if sh.row_values(num)[0] == card_obj[i].iccid:
                    max_obj.append(
                        dict(
                            zip(
                                head,
                                [
                                    *
                                    msg
                                    ,
                                    card_obj[i].id
                                ]
                            )
                        )
                    )
        db.session.bulk_update_mappings(
            Card,
            [*max_obj]
        )
        db.session.commit()
        if os.path.exists(file_path):
            os.remove(file_path)
        return "成功读取文件内的内容,并且更新成功本地文件已经删除"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值