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)
相关推荐
站大爷IP2 分钟前
Python闭包变量作用域踩坑实录,原来我们都想错了
python
zzj_2626109 分钟前
实验七 Python 文件操作与异常处理
开发语言·python
菜到离谱但坚持12 分钟前
零门槛学LangChain:AI开发从入门到实战
python·langchain·prompt·rag
databook19 分钟前
一次函数图像工厂:用 SymPy 自动生成 y=kx+b 对比动画
python·数学·动效
测试老哥20 分钟前
接口测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
geovindu21 分钟前
python: N-Barrier Pattern
开发语言·python·设计模式·屏障模式
浮生望23 分钟前
Python 入门 + 调用 LLM API:从 List 切片到商品文案生成
python
战族狼魂30 分钟前
MetaPrompt编译器核心逻辑拆解
开发语言·人工智能·python
lunzi_082630 分钟前
【学习笔记】《Python编程 从入门到实践》第5章:if语句、条件测试与列表处理实战
笔记·python·学习
sunshineine36 分钟前
FreeCAD
python