去年研究匯入資料的時候寫了乙個批量匯入資料的指令碼,但有個問題,如果匯入這批資料在資料庫中已經存在,那麼我們匯入的資料不就重複了麼,本文就討論如何解決這個問題?
程式如下:
#coding:utf-8
import
os os.environ.setdefault(
"django_settings_module
", "
www.settings")
'''django 版本大於等於1.7的時候,需要加上下面兩句
import django
django.setup()
'''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
: 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)
"重複資料
"+str(x)+"
條,成功匯入資料
"+str(y)+"
條"
本文主要運用模型中exists()判斷匯入資料和資料庫是否重複,如果不重複就用bulk_create批量匯入資料庫!
完畢!
mysql批量插入不重複資料
1.設定唯一建 前提是 有唯一建可用,but基本很難有這樣的場景。datum有唯一建。create table datum id int 11 notnull auto increment mid int 11 notnull default 0 rong liang varchar 255 col...
「不重複數」問題
1 如果乙個數字十進位制表達時,不存在連續兩位相同,則稱之為 不重複數 例如,105 1234 12121都是不重複數,而11 100 1225不是。給定乙個正整數a,返回大於a的最小不重複數。a小於100000.示例 輸入 value 21099 返回 21201 本題的難點不在於判斷是否是不重複...
不重複數字
operatorname luogup 4305 給定 n nn 個數,要求把其中重複的去掉,只保留第一次出現的數。本題有多組資料。第一行乙個整數 t tt 表示資料組數。對於每組資料 第一行乙個整數 n nn 第二行 n nn 個數,表示給定的數。對於每組資料,輸出一行,為去重後剩下的數,兩個數之...