【python】SQLite学习笔记06:从excel文件批量导入数据到SQLite数据库

尽管SQLite应用广泛,但是网上可参考资料却不太多,现有的菜鸟教程(www.runoob.com)、SQLite官网Python的SQLite子站信息略嫌粗糙而且比较基础,故此分享一些跳出坑的经验供大家参考。看代码吧,重点代码我会敲黑板的。有何疑问请在评论区留下你的问题,我会尽快回复。

待导入的excel文件内容截图:
待导入的excel文件内容截图
以下代码基于Python 3.7.1,需要说明的是,代码省略了数据库及表的创建部分,因为这块知识比较基础。
我使用了openpyxl模块(操作excel文件实在好用!)、sqlite3模块,应用了迭代器来逐行读取excel数据,可以较好地控制内存开销(对较大的excel文件才有实际价值)。

import sqlite3
import openpyxl
lists=sqlite3.connect('onlyu.db') 
c=lists.cursor()
listinsheet=openpyxl.load_workbook(r'C:\Users\VC\OneDrive\python2019\database\edit_42479_2019-01-14T152133.xlsx')
datainlist=listinsheet.active #获取excel文件当前表格
data_truck='''INSERT INTO mylist(list_id,list_node_id,doc_signature,doc_title,doc_category,doc_definition,doc_heading,doc_index,doc_col1,doc_col2,doc_col3,doc_col4,doc_col5,
doc_col6,doc_col7,doc_col8,doc_code) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''
for row in datainlist.iter_rows(min_row=2,max_col=17,max_row=datainlist.max_row): 
#使excel各行数据成为迭代器
    cargo=[cell.value for cell in row] #敲黑板!!使每行中单元格成为迭代器
    c.execute(data_truck,cargo) #敲黑板!写入一行数据到数据库中表mylist
lists.commit()
lists.close()
  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值