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)
相关推荐
dinl_vin17 分钟前
Python 数据分析入门系列(一):从NumPy开始
python·数据分析·numpy
小陈工34 分钟前
2026年3月26日技术资讯洞察:WebAssembly崛起、AI代码质量危机与开源安全新挑战
人工智能·python·安全·架构·开源·fastapi·wasm
2401_879693871 小时前
数据分析与科学计算
jvm·数据库·python
明月_清风1 小时前
宿命的对决:深度对比 JavaScript 与 Python 的异步进化论
后端·python
明月_清风1 小时前
别再纠结 Conda 了!2026 年,uv 才是 Python 环境管理的唯一真神
后端·python
Thomas.Sir2 小时前
第一章:Python3 基础入门:从零基础到实战精通
python·ai
telllong2 小时前
BeeWare:Python原生移动应用开发
开发语言·python
tang777892 小时前
小红书平台用什么代理 IP 比较好?2026年3月实测数据 + 选型推荐
网络·爬虫·python·网络协议·tcp/ip·数据挖掘·ip
dulu~dulu4 小时前
算法---寻找和为K的子数组
笔记·python·算法·leetcode
编程之升级打怪4 小时前
用Python语言实现简单的Redis缓冲数据库驱动库
redis·python