基础Python教程之读写sqlite

前言

SQLite 是一种嵌入式数据库管理系统,它是一个自包含、零配置的、服务器无关的数据库引擎。它的设计目标是提供一个轻量级的、高效的数据库解决方案,适用于嵌入式系统、移动设备和简单的应用程序。

Python 是一种高级编程语言,其强大的标准库使其成为许多开发人员的首选语言之一。Python 提供了与 SQLite 数据库进行交互的内置模块 sqlite3,使开发人员能够使用 Python 在应用程序中轻松地操作 SQLite 数据库。

通过 sqlite3 模块,你可以在 Python 中创建、连接、查询和修改 SQLite 数据库。你可以执行 SQL 查询、插入、更新和删除数据,还可以管理数据库表和索引等。

一、环境准备

首先,需要准备以下工具:

  • Python 3.x
  • pandas 库
  • SQLite 数据库

Python可以在官网中直接进行安装,跟安装软件一样方便;pandas 是 Python 中常用的数据处理库,而 SQLite 是一种轻型的数据库系统(Python自带不需要安装),安装Python环境后,安装pandas库:

pip install pandas

二、实现excel写入sqlite的方法

1、读取excel文件

使用pandas进行读取,详细可以查看这篇文章:基础Python教程之pandas使用总结-CSDN博客

复制代码
import pandas as pd
import numpy as np
 
df = []
 
ws = pd.ExcelFile(file)
sheets = ws.sheet_names
print(sheets)
for sheet in sheets:
    tem_df = pd.read_excel(file, sheet_name=sheet, dtype='str')
    tem_df = tem_df.replace(np.nan, '')
 
    if len(df) == 0:
        df = tem_df
    else:
        df = pd.concat([df, tem_df])
 
print(df)

2、连接sqlite数据库

接下来,我们需要连接 SQLite 数据库。这可以通过 Python 语言的 sqlite3 模块来实现。

复制代码
import sqlite3

conn = sqlite3.connect('data.db')

3、将 DataFrame 写入sqlite数据库

现在,我们需要将 DataFrame 中的数据写入到 SQLite 数据库中。在这里,我们可以使用 pandas 库中的 to_sql 函数来实现。

复制代码
df.to_sql('data', conn, if_exists='replace', index=False)

以上代码中,我们使用 to_sql 函数将名为 data 的 DataFrame,写入到名为 data 的表中。其中,conn 参数是 SQLite 数据库连接对象,if_exists 参数是用于指定表已经存在时的行为,这里我们将其设为 replace,表示替换原有的表。index 参数是表示是否需要将 DataFrame 中的索引写入到数据库中。

三、实现读取sqlite写入excel的方法

1、连接sqlite3数据库

使用Python连接sqlite3数据库,只需要如下几行代码:

复制代码
import sqlite3

#连接数据库
conn = sqlite3.connect('data.db')

#创建游标
cursor = conn.cursor()

#执行SQL语句
cursor.execute('SELECT * FROM data')

#获取查询结果
result = cursor.fetchall()

#关闭游标和连接
cursor.close()
conn.close()

首先使用sqlite3库中的connect方法连接数据库,传入数据库文件名作为参数。然后使用cursor方法创建游标,通过游标执行SQL语句,最后通过fetchall方法获取查询结果。最后需要手动关闭游标和连接,以释放相关资源。

2、读取sqlite3中表的列名

跟上面操作差不多,唯一就是sql语句发生了变化。

复制代码
import sqlite3

#连接数据库
conn = sqlite3.connect('data.db')

#创建游标
cursor = conn.cursor()

#执行SQL语句
cursor.execute('PRAGMA table_info(data)')

#获取查询结果
columns = cursor.fetchall()
column_names = [c[1] for c in columns]


#关闭游标和连接
cursor.close()
conn.close()

3、写入excel文件

复制代码
df = pd.DataFrame(result, columns=column_names)

# 输出excel
df.to_excel("data.xlsx", index=False)

其中的result和column_names为上面查询出来的值,通过df.to_excel输出数据到excel中。

完毕!!!

相关推荐
惊讶的猫11 分钟前
Redis持久化介绍
数据库·redis·缓存
Apple_羊先森23 分钟前
ORACLE数据库巡检SQL脚本--19、磁盘读次数最高的前5条SQL语句
数据库·sql·oracle
全栈前端老曹1 小时前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
神梦流1 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
让学习成为一种生活方式1 小时前
trf v4.09.1 安装与使用--生信工具42-version2
数据库
啦啦啦_99992 小时前
Redis-5-doFormatAsync()方法
数据库·redis·c#
生产队队长2 小时前
Redis:Windows环境安装Redis,并将 Redis 进程注册为服务
数据库·redis·缓存
老邓计算机毕设2 小时前
SSM找学互助系统52568(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 毕业设计
痴儿哈哈2 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Σίσυφος19002 小时前
PCL法向量估计 之 方向约束法向量(Orientation Guided Normal)
数据库