像这样的数据怎么存入sqlite数据库并且进行增删改查?求解答
你可以用xlrd库来读取Excel文件的数据,用sqlite3库来操作SQLite数据库。
以下是一个例子需要用到这两个库:
import xlrd
import sqlite3
#读取excel文件的数据
def read_excel_file(filename, sheetname):
workbook = xlrd.open_workbook(filename) #打开excel文件
sheet = workbook.sheet_by_name(sheetname) #选择工作表
rows = sheet.nrows #获取行数
data = []
for i in range(rows):
data.append(sheet.row_values(i)) #将每一行的数据存储到data列表中
return data
#创建数据库表
def create_table(table_name):
conn = sqlite3.connect('db_name.db') #打开数据库连接
cursor = conn.cursor()
cursor.execute('CREATE TABLE {} (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)'.format(table_name)) #创建表格
conn.commit() #提交更改
conn.close() #关闭数据库连接
#插入数据到数据库表
def insert_data(table_name, data):
conn = sqlite3.connect('db_name.db') #打开数据库连接
cursor = conn.cursor()
cursor.executemany('INSERT INTO {} (name, age) VALUES (?, ?)'.format(table_name), data) #插入数据
conn.commit() #提交更改
conn.close() #关闭数据库连接
#更新数据到数据库表
def update_data(table_name, data):
conn = sqlite3.connect('db_name.db') #打开数据库连接
cursor = conn.cursor()
for row in data:
cursor.execute('UPDATE {} SET name=?, age=? WHERE id=?'.format(table_name), (row[1], row[2], row[0])) #更新数据
conn.commit() #提交更改
conn.close() #关闭数据库连接
#删除数据到数据库表
def delete_data(table_name, id_list):
conn = sqlite3.connect('db_name.db') #打开数据库连接
cursor = conn.cursor()
for id in id_list:
cursor.execute('DELETE FROM {} WHERE id=?'.format(table_name), (id,)) #删除数据
conn.commit() #提交更改
conn.close() #关闭数据库连接
#查询数据到数据库表
def select_data(table_name):
conn = sqlite3.connect('db_name.db') #打开数据库连接
cursor = conn.cursor()
cursor.execute('SELECT * FROM {}'.format(table_name)) #查询数据
data = cursor.fetchall()
conn.commit() #提交更改
conn.close() #关闭数据库连接
return data
if __name__ == '__main__':
filename = "data.xlsx" #Excel文件名
sheetname = "Sheet1" #工作表名
table_name = "person" #数据库表名
data = read_excel_file(filename, sheetname) #读取Excel中的数据
create_table(table_name) #创建数据库表
insert_data(table_name, data) #将Excel数据插入到数据库表
update_data(table_name, [[1, 'Tom', 22], [2, 'John', 25]])
不知道你这个问题是否已经解决, 如果还没有解决的话: