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)
相关推荐
Nina_7172 分钟前
DAY 44 训练
python
Rose 使者18 分钟前
今日实时汇率查询接口如何用Python实现调用?
python·api·汇率查询
惜鸟21 分钟前
Pydantic 的 BaseSettings 配置解析
后端·python
MYH51630 分钟前
拉力测试cuda pytorch 把 4070显卡拉满
人工智能·pytorch·python
某人辛木35 分钟前
基于tensorflow实现的猫狗识别
人工智能·python·tensorflow
大白爱琴38 分钟前
使用python进行图像处理—图像变换(6)
图像处理·人工智能·python
月忆3641 小时前
等待组(waitgroup)
前端·爬虫·python
一个何包蛋!!1 小时前
相关类相关的可视化图像总结
开发语言·python·数据可视化
技术便签1 小时前
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
人工智能·python·ai编程·agi·多智能体·智能体·adk
love530love1 小时前
教程:PyCharm 中搭建多级隔离的 Poetry 环境(从 Anaconda 到项目专属.venv)
开发语言·ide·人工智能·windows·python·pycharm