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)
相关推荐
遨游xyz4 分钟前
Trie树(字典树)
开发语言·python·mysql
重启编程之路12 分钟前
AlphaLens Pro V14.0 商业级量化推演终端 | 功能白皮书
python
二十雨辰19 分钟前
[python]-生成器和正则
python
Loo国昌30 分钟前
【AI应用开发实战】06_向量存储与EmbeddingProvider设计
人工智能·后端·python·语言模型·自然语言处理·prompt
两万五千个小时37 分钟前
构建mini Claude Code:07 - 一切皆文件:持久化任务系统
人工智能·python·架构
番茄去哪了44 分钟前
python基础入门(一)
开发语言·数据库·python
Humbunklung1 小时前
深入解析PPTX:编程实现批量字体替换的原理与实践
人工智能·python·计算机视觉·manus
qianguhuaimin1 小时前
Python作业3
开发语言·python
小兔崽子去哪了1 小时前
XGBoost,朴素贝叶斯,特征降维,聚类算法
python·机器学习
隔壁大炮1 小时前
08. PyTorch_张量基本创建方式
人工智能·pytorch·python