基础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中。

完毕!!!

相关推荐
做梦敲代码22 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud1 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡2 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷2 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪2 小时前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb