for循环

时间:2017-09-12 14:09:42

标签: python sqlite insert

CONNECTION.execute("""CREATE TABLE IF NOT EXISTS ByState (
        Date TEXT,
        AveTemp REAL,
        AveTempUn REAL,
        State VARCHAR(20),
        Country VARCHAR(20)
)""")
CONNECTION.commit()

我有这个数据库表我需要插入数千条记录(来自Excel文档)。我正在使用xlrd来读取Excel文件。我使用for循环插入表中。

for i in range(1,SHEET.nrows):
    data=SHEET.row_values(i)
    store=tempByCountry(Date=data[0],AverageTemp=data[1],TempUncert=data[2],Country=data[3])
    CONNECTION.execute("INSERT INTO ByCountry VALUES (:Date, :AveTemp, :AveTempUn, :Country)", {'Date': data.Date,'AveTemp': data.AverageTemp,'AveTempUn': data.TempUncert,'Country': data.Country})
    CONNECTION.commit()

print("Records Stored ByCountry")

问题:

  1. xlrd缓慢读取Excel文件(包含500,000行)。
  2. 记录以每秒10到20次插入的速度添加。使用它是不可能的,需要几个小时。
  3. 我正在使用Python3,SQLite3和xlrd。

0 个答案:

没有答案