csv文件批量导入数据到sqlite。
代码:
f = web.input(bs_switch = {}) # bs_switch 为from表单file字段的name
data =[i.split(",") for i in f["bs_switch"].file.read().split()[1:]]#这里的步骤:
#1、读取导入的内容:f["bs_switch"].file.read()
#2、因为导入的内容为str,转化为列表。用split()。
#3、因为csv文件的第一栏为字段名称,不需要,故用 [1:0]切片。
#4、数据列表的每一项为一个单独的str,需用csv分隔符将数据转换为list。用split(",")方法。
#5、注意的是,导入前,需将csv的编码设置为utf-8。
for i in data:
i[0] = conf.get_field_by_name("bs_line","id",i[0]) #将字段名称转化为数据库中的id值。
db2.query("INSERT INTO bs_switch (l_id,name,type,property,remarks) VALUES('%s','%s','%s','%s','%s')"%tuple(i))