Python问题,求解答

像这样的数据怎么存入sqlite数据库并且进行增删改查?求解答

img

你可以用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]])
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^