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)
相关推荐
X56611 分钟前
什么是Bootstrap的移动优先响应式设计
jvm·数据库·python
m0_470857641 分钟前
实现一个可精确定位、支持左右移动与删除的文本光标系统
jvm·数据库·python
m0_591364734 分钟前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
川冰ICE5 分钟前
Python爬虫实战⑲|Pandas数据合并与重塑,多数据源整合
爬虫·python·pandas
acanab7 分钟前
isaaclab资产打包的一种方式
vscode·python·机器人·isaac lab
Be reborn9 分钟前
从一行 CSV 到一次浏览器操作:关键字驱动执行引擎设计
python·自动化·pytest
创意岛11 分钟前
AI时代,你的品牌在城市发展中“被消失”了吗?
人工智能·python
weixin_4440129315 分钟前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python
X566116 分钟前
CSS如何利用Grid重写老旧的表格布局
jvm·数据库·python
ㄟ留恋さ寂寞20 分钟前
mysql如何配置MySQL的连接保持_调整tcp_keepalive设置
jvm·数据库·python