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)
相关推荐
没事儿写两篇7 分钟前
Python 包管理工具-uv
python·uv·开源包管理工具
2501_941418558 分钟前
基于YOLO11-C3k2-ESC的避雷器外部缺陷检测实现
python
流㶡9 分钟前
Python爬虫:POST与Selenium
爬虫·python·selenium
爱学习的阿磊16 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
Sagittarius_A*37 分钟前
形态学与多尺度处理:计算机视觉中图像形状与尺度的基础处理框架【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉
m0_5613596739 分钟前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
2301_7903009640 分钟前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
自可乐1 小时前
LangGraph从入门到精通:构建智能Agent的完整指南
人工智能·python·机器学习
m0_561359671 小时前
使用Docker容器化你的Python应用
jvm·数据库·python