django批量插入,遇到错误改为逐条插入

为了提升插入数据的效率,通常采用批量插入的方式,当一批数据中有错误数据时,该批次数据报错,都插入失败。如何跳过引起报错的数据,将其他正确的数据插入,实现方式如下代码。

复制代码
data_to_insert = []
for i, data in  datas:
    testDemo = TestDemo()
    testDemo.ID = data[i].id
    testDemo.NAME = data[i].name
    data_to_insert.append(testDemo)

    if (i + 1) % 1000 == 0:
        try:
            TestDemo.objects.bulk_create(data_to_insert, batch_size=1000)
        except Exception as e:
            # 处理批次插入错误,逐个插入并跳过异常数据
            print("批次插入数据时出现错误:", e)
            for item in data_to_insert:
                try:
                    item.save()
                except Exception as e:
                    # 处理逐条插入错误,可以打印错误信息或进行其他操作
                    print("逐条插入数据时出现错误:", e)
        data_to_insert.clear()

# 处理最后可能剩余的数据
try:
    TestDemo.objects.bulk_create(data_to_insert, batch_size=1000)
except Exception as e:
    # 处理批次插入错误,逐个插入并跳过异常数据
    print("批次插入数据时出现错误:", e)
    for item in data_to_insert:
        try:
            item.save()
        except Exception as e:
            # 处理逐条插入错误,可以打印错误信息或进行其他操作
            print("逐条插入数据时出现错误:", e)
相关推荐
工会代表1 小时前
使用 GitHub Actions 与 Docker 实现 CaptchaVision API 持续集成
python
cvyoutian1 小时前
解决 PyTorch 大型 wheel 下载慢、超时和反复重下的问题
人工智能·pytorch·python
小徐敲java1 小时前
python的FastAPI框架
开发语言·python·fastapi
CHANG_THE_WORLD2 小时前
Python 切片操作全面解析
开发语言·python
是一个Bug2 小时前
Spring事件监听器在电商订单系统中的应用
java·python·spring
shangjian0072 小时前
Python基础-闭包和装饰器
开发语言·python
三维空间2 小时前
如何在Python多进程中避免死锁问题?
python
冤大头编程之路3 小时前
Python并发编程实操教程:多线程/多进程/异步全解析
python
dhdjjsjs3 小时前
Day30 Python Study
开发语言·前端·python
Eric.Lee20213 小时前
mujoco构建无物理约束的几何体运动
python·物理引擎·mujoco·物理模型仿真