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)
相关推荐
qq_4160187210 分钟前
用户认证与授权:使用JWT保护你的API
jvm·数据库·python
王夏奇21 分钟前
笔记-关于python复习
python
AC赳赳老秦30 分钟前
OpenClaw 全平台安装详解:Windows 10/11、macOS、Linux 零踩坑指南 (附一键脚本)
大数据·人工智能·python·django·去中心化·ai-native·openclaw
m0_743297421 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
databook1 小时前
从直觉到算法:贝叶斯思维的技术底层与工程实现
人工智能·python·机器学习
m0_716667071 小时前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
XW01059991 小时前
6-1输入列表,求列表元素和(eval输入应用)
python
川石课堂软件测试1 小时前
接口测试需要注意的一些BUG
网络·数据库·python·单元测试·bug·压力测试·tornado
2401_853576501 小时前
定时任务专家:Python Schedule库使用指南
jvm·数据库·python
Oueii2 小时前
如何为开源Python项目做贡献?
jvm·数据库·python