使用python向数据库插入数据之后数据重现重复,求解是什么原因。
代码如下:
import csv
import MySQLdb
from datetime import date,datetime
con=MySQLdb.connect(host="localhost",port=3306,db="my_suppliers",user="root",passwd="secret")
c=con.cursor()
file_reader=csv.reader(open("supplier_data.csv","r",newline=""))
header=next(file_reader)
for row in file_reader:
data=[]
for col_index in range(len(header)):
if col_index<4:
info=str(row[col_index]).strip("$").replace(",","").strip()
data.append(info)
else:
a_date=datetime.date(datetime.strptime(row[col_index],"%m/%d/%y"))
a_date=a_date.strftime("%Y-%m-%d")
data.append(a_date)
print(data)
c.execute("INSERT INTO Suppliers VALUES(%s,%s,%s,%s,%s);",data)
con.commit()
print("")
c.execute("SELECT * FROM Suppliers")
rows=c.fetchall()
for row in rows:
print(row)
运行结果:
['Supplier X', '001-1001', '2341', '500.00', '2014-01-20']
['Supplier X', '001-1001', '2341', '500.00', '2014-01-20']
['Supplier X', '001-1001', '5467', '750.00', '2014-01-20']
['Supplier X', '001-1001', '5467', '750.00', '2014-01-20']
['Supplier Y', '50-9501', '7009', '250.00', '2014-01-30']
['Supplier Y', '50-9501', '7009', '250.00', '2014-01-30']
['Supplier Y', '50-9505', '6650', '125.00', '2014-02-03']
['Supplier Y', '50-9505', '6650', '125.00', '2014-02-03']
['Supplier Z', '920-4803', '3321', '615.00', '2014-02-03']
['Supplier Z', '920-4804', '3321', '615.00', '2014-02-10']
['Supplier Z', '920-4805', '3321', '615.00', '2014-02-17']
['Supplier Z', '920-4806', '3321', '615.00', '2014-02-24']
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4803', '3321', 615.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4804', '3321', 615.0, datetime.date(2014, 2, 10))
('Supplier Z', '920-4805', '3321', 615.0, datetime.date(2014, 2, 17))
('Supplier Z', '920-4806', '3321', 615.0, datetime.date(2014, 2, 24))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4803', '3321', 615.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4804', '3321', 615.0, datetime.date(2014, 2, 10))
('Supplier Z', '920-4805', '3321', 615.0, datetime.date(2014, 2, 17))
('Supplier Z', '920-4806', '3321', 615.0, datetime.date(2014, 2, 24))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4803', '3321', 615.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4804', '3321', 615.0, datetime.date(2014, 2, 10))
('Supplier Z', '920-4805', '3321', 615.0, datetime.date(2014, 2, 17))
('Supplier Z', '920-4806', '3321', 615.0, datetime.date(2014, 2, 24))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4803', '3321', 615.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4804', '3321', 615.0, datetime.date(2014, 2, 10))
('Supplier Z', '920-4805', '3321', 615.0, datetime.date(2014, 2, 17))
('Supplier Z', '920-4806', '3321', 615.0, datetime.date(2014, 2, 24))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '2341', 500.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier X', '001-1001', '5467', 750.0, datetime.date(2014, 1, 20))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9501', '7009', 250.0, datetime.date(2014, 1, 30))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Y', '50-9505', '6650', 125.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4803', '3321', 615.0, datetime.date(2014, 2, 3))
('Supplier Z', '920-4804', '3321', 615.0, datetime.date(2014, 2, 10))
('Supplier Z', '920-4805', '3321', 615.0, datetime.date(2014, 2, 17))
('Supplier Z', '920-4806', '3321', 615.0, datetime.date(2014, 2, 24))
Process finished with exit code 0
要么file_reader里面有重复数据,要么页面请求了2次。