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 分钟前
Linux 5 目录权限与粘滞位详解
linux·运维·服务器·数据结构·python·算法·tornado
程序员哈基耄10 分钟前
安全高效,本地运行:全能文件格式转换工具
大数据·python·安全
lixin5565561 小时前
基于神经网络的音乐生成增强器
java·人工智能·pytorch·python·深度学习·语言模型
养海绵宝宝的小蜗1 小时前
Python第二次作业
开发语言·python
我的xiaodoujiao1 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 43--添加allure测试报告显示信息和其他封装方法
python·学习·测试工具·allure
无垠的广袤1 小时前
【CPKCOR-RA8D1】RUHMI 转换 AI 模型
人工智能·python·嵌入式硬件·开发板
aiguangyuan1 小时前
从词袋到TF-IDF:sklearn文本特征工程实战指南
人工智能·python·nlp
数据知道1 小时前
PostgreSQL 实战:详解 UPSERT(INSERT ON CONFLICT)
数据库·python·postgresql
June bug1 小时前
(#数组/链表操作)寻找两个正序数组的中位数
数据结构·python·算法·leetcode·面试·职场和发展·跳槽
李昊哲小课1 小时前
奶茶店销售额预测模型
python·机器学习·线性回归·scikit-learn