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

完毕!!!

相关推荐
陳陈陳24 分钟前
LLM的"消化系统":一文讲透RAG文档加载与智能切割
数据库·langchain·llm
IvorySQL26 分钟前
云环境下PostgreSQL的Cgroup内存管理实践
java·数据库·postgresql
霸道流氓气质1 小时前
CodeBuddy中配置Redis MCP 连接与排错实战
数据库·redis·缓存
王琦03181 小时前
第一章 数据库-理论基础
数据库
数行拙笔1 小时前
Redis---hash类型
数据库·redis·哈希算法
哈__1 小时前
MCP 协议落地实践:国产化数据库 AI 一站式 SQL 诊断调优方案
数据库·人工智能·sql
范什么特西1 小时前
mysql总结
数据库·mysql
一招合理1 小时前
Accordion:一种HBase内存压缩算法
大数据·数据库·hbase
明亮 Blog2 小时前
Wi-Fi 6/7的物联网“芯”机遇:高带宽低延时如何重塑智慧工厂的AGV物流革命
服务器·网络·数据库
枫叶丹2 小时前
告别“人肉”搬砖:当AI助手直连数据库,SQL优化从未如此简单
数据库