将excel导入到sqlite的方法代码

news/2024/7/21 7:51:40 标签: sqlite, excel, 数据库, python

Python实现excelsqlite的方法,具体如下:
Python环境的安装配置就不说了,个人喜欢pydev的开发环境。
python解析excel需要使用第三方的库,这里选择使用xlrd


 

下面是源代码:

#!/usr/bin/python
# encoding=utf-8
'''''
Created on 2013-4-2
@author: ting
'''
fromxlrdimportopen_workbook
importsqlite3
importtypes
defread_excel(sheet):
# 判断有效sheet
ifsheet.nrows >0andsheet.ncols >0:
forrowinrange(1, sheet.nrows):
row_data=[]
forcolinrange(sheet.ncols):
data=sheet.cell(row, col).value
# excel表格内容数据类型转换 float->int,unicode->utf-8
iftype(data)istypes.UnicodeType: data=data.encode("utf-8")
eliftype(data)istypes.FloatType: data=int(data)
row_data.append(data)
check_data_length(row_data)
# 检查row_data长度
defcheck_data_length(row_data):
iflen(row_data)==3:
insert_sqlite(row_data)
definsert_sqlite(row_data):
# 打开数据库(不存在时会创建数据库
con=sqlite3.connect("test.db")
cur=con.cursor()
try:
cur.execute("create table if not exists contacts(_id integer primary key "\
"autoincrement,name text,age integer,number integer)")
# 插入数据不要使用拼接字符串的方式,容易收到sql注入攻击
cur.execute("insert into contacts(name,age,number) values(?,?,?)", row_data)
con.commit()
exceptsqlite3.Error as e:
print"An error occurred: %s", e.args[0]
finally:
cur.close
con.close
xls_file="test.xls"
book=open_workbook(xls_file)
forsheetinbook.sheets():
read_excel(sheet)
print"------ Done ------"
 

 


http://www.niftyadmin.cn/n/210794.html

相关文章

hdfs集群的扩容和缩容

文章目录1、背景2、集群黑白名单3、准备一台新的机器并配置好hadoop环境3.1 我们现有的集群规划3.2 准备一台新的机器3.2.1 查看新机器的ip3.2.2 修改主机名和host映射3.2.3 配置时间同步3.2.4 关闭防火墙3.2.5 新建hadoop部署用户3.2.6 复制hadoop04机器上的/etc/hosts文件到集…

使用brew安装PicGo后无法使用

使用PicGo官网的brew指令brew install picgo --cask安装PicGo后,点击启动台的PicGo图标后,显示文件损坏,无法打开。 报错信息 PicGo已损坏,无法打开。 您应该将它移到废纸篓。解决方法 在终端输入命令(注意最后有一…

报错解决:Python ‘NoneType‘ object is not subscriptable , 获取到的数据为None,需要保留数据

人生苦短,我用python 爬取某DB电影数据的时候, 在获取内容的时候出现 NoneType object is not subscriptablePython 资料报错交流:点击此处跳转文末名片获取 获取数据的部分代码是: writer_avatars (writers_list[wi][avatars][small]) …

【MyBatis】Spring整合MyBatis教程

一、什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain …

Grafana权限管理,新增用户并配置组权限

目前使用Grafana监控Flink相关任务的指标,但是可能会遇到别的开发者需要监控相关的指标情况,因此需要给他们单独开一个账号,并且配置相关的权限。 1、创建User 使用admin账号登录到Grafana中,左边栏中选中设置下的users。我么可…

多线程冲突处理方法,锁

线程之间是可以共享进程的资源,比如代码段、堆空间、数据段、打开的文件等资源,但每个线程都有自己独立的栈空间。 那么问题就来了,多个线程如果竞争共享资源,如果不采取有效的措施,则会造成共享数据的混乱。 我们做…

故障管理里的小细节

故障,是一种常态,任何一个软件系统都避免不了,国内最牛的 BAT 避免不了,国外最牛的 Google、Amazon、Facebook、Twitter 等也避免不了。业务体量越大,系统越复杂,问题和故障就越多,出现故障是必…

【云原生进阶之容器】第五章容器运行时5.5--容器运行时之Kata Containers

《云原生进阶之容器》专题索引: 第一章Docker核心技术1.1节——Docker综述