python 录入数据不重复_python Django批量导入不重复数据

本文介绍了如何使用Python Django框架实现批量导入CSV数据到数据库,并通过exists()方法检查数据是否存在,避免导入重复记录。文章提供了一段示例代码,展示了如何创建和填充数据模型实例,然后使用bulk_create()批量插入数据。该方法适用于需要高效且无重复地导入大量数据的场景。
摘要由CSDN通过智能技术生成

本文为大家分享了python Django批量导入不重复数据的实现代码,供大家参考,具体内容如下

程序如下:

#coding:utf-8

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings")

'''

Django 版本大于等于1.7的时候,需要加上下面两句

import django

django.setup()

否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

'''

import django

import datetime

if django.VERSION >= (1, 7):#自动判断版本

django.setup()

from keywork.models import DevData

f = open('cs.csv')

WorkList = []

next(f) #将文件标记移到下一行

x = y = 0

for line in f:

parts = line.replace('"','') #将字典中的"替换空

parts = parts.split(',') #按;对字符串进行切片

if DevData.objects.filter(serv_id = parts[0],day_id=parts[24]).exists():

x = x + 1

else:

y = y + 1

WorkList.append(DevData(serv_id=parts[0], serv_state_name=parts[1], acc_nbr=parts[2], user_name=parts[3], acct_code=parts[4], product_id=parts[5],

mkt_chnl_name=parts[6], mkt_chnl_id=parts[7],mkt_region_name=parts[8], mkt_region_id=parts[9],mkt_grid_name=parts[10],

sale_man=parts[11],sale_outlets_cd1_name=parts[12], completed_time=parts[13],remove_data=parts[14], user_flag=parts[15],

pro_flag=parts[16], service_offer_id=parts[17],service_offer_name=parts[18], finish_time=parts[19],staff_name=parts[20],

staff_code=parts[21],org_name=parts[22],prod_offer_name=parts[23],day_id=parts[24]

))

f.close()

DevData.objects.bulk_create(WorkList)

print "重复数据"+str(x)+"条,成功导入数据"+str(y)+"条"

本文主要运用模型中exists()判断导入数据和数据库是否重复,如果不重复就用bulk_create批量导入数据库!

可对照参考我的另一篇文章:批量导入数据

以上就是本文的全部内容,希望对大家的学习有所帮助。

时间: 2016-03-23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值