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)
相关推荐
u0109147602 分钟前
C#怎么使用Span和Memory C#如何用Span优化内存操作减少GC压力提升性能【进阶】
jvm·数据库·python
m0_716430075 分钟前
CSS项目开发如何提速_应用BEM规范建立可复用的样式库
jvm·数据库·python
maqr_1106 分钟前
PyTorch bfloat16 张量转 NumPy 的兼容性解决方案
jvm·数据库·python
weixin_408717776 分钟前
mysql如何防止SQL注入攻击_使用预编译语句与参数化查询
jvm·数据库·python
皮肤科大白9 分钟前
X-AnyLabeling 快速入门
图像处理·python
weixin_4249993610 分钟前
http-equiv属性有哪些常用值_meta模拟HTTP头汇总【详解】
jvm·数据库·python
knight_9___11 分钟前
RAG面试题4
开发语言·人工智能·python·面试·agent·rag
WL_Aurora11 分钟前
每日一题——自然倍树
数据结构·python·算法·深度优先
源码之家13 分钟前
计算机毕业设计:Python股票数据可视化与LSTM股价预测系统 Flask框架 LSTM Keras 数据分析 可视化 深度学习 大数据 爬虫(建议收藏)✅
大数据·python·深度学习·信息可视化·django·lstm·课程设计
BU摆烂会噶17 分钟前
【LangGraph】实战:基于 LangGraph 实现的智能文档问答系统
人工智能·python·langchain