最近发现的 3 个 Python 轻量级数据库,好用到爆!

article/2025/10/6 19:05:54

你好,我是征哥,在写程序的时候经常会需要将数据保存到本地,比如是配置文件,或者是中间过程数据,通过情况下我会选择 json、pickle 或者 sqlite。但是他们都有点不大方便。

比如 json 和 pickle,需要先序列化保存到文件,读的时候再反序列化成 Python 对象。往往搞不清楚是 load 还是 dump,是 loads 还是 dumps,需要查下文档。而 sqlite,虽然是文件数据库,但用起来和大的数据库 MySQL 的复杂度也差不多。

今天分享一下这些专门为 Python 打造的轻量级数据库,使用起来真的简单到爆,写代码时没有记忆负担。

Shelve

如果说 Python 中的字典(dict)是保存在内存中的,那么标准库 shelve[1] 就像是保存在文件中的字典,它的值可以为为任意 pickle 模块能够处理的 Python 对象,这包括大部分类实例、递归数据类型,以及包含大量共享子对象的对象,它的键则为普通的字符串。

使用方法:shelve.open(filename, flag='c', protocol=None, writeback=False)

示例代码如下,可以看下注释:

import shelve# 写入
db = shelve.open("store")
db["data"] = {"name": "Python七号", "author": "somenzz"}
db.close()# 会生成文件 store.db# 推荐这种写法 
with shelve.open("store") as db:db["data"] = {"name": "Python七号", "author": "somenzz"}#读取
with shelve.open("store") as db:print(db["data"])#out {'name': 'Python七号', 'author': 'somenzz'}

pickleDB

pickleDB[2] 是一个轻量级且简单的键值对存储。它建立在 Python 的 simplejson 模块之上,并受到 redis 的启发。可以通过 pip install pickledb 进行安装。

使用方法:

>>> import pickledb
>>> db = pickledb.load('example.db', auto_dump = False)
>>> db.set('name', 'Python七号')
True
>>> db.get('name')
'Python七号'
>>> db.dump()
True

TinyDB

与 pickleDB 和 Shelve 类似,TinyDB 是另一种快速且轻量级的键值对存储。TinyDB[3] 的优点是非常快,非常简单易用。TinyDB 的接口类似于许多键值存储,但提供了许多附加功能,例如编写自己的存储中间件能力。

用法:

import tinydbdb = tinydb.TinyDB("store.json")
db.insert({"name": "Python七号"})
db.insert({"author": "somenzz"})
results = db.all()
print(results)# output [{'name': 'Python七号'}, {'author': 'somenzz'}]

还可以这样用:

>>> from tinydb import TinyDB, Query
>>> db = TinyDB('path/to/db.json')
>>> User = Query()
>>> db.insert({'name': 'Python七号', 'author': 'somenzz'})
>>> db.search(User.name == 'Python七号')
[{'name': 'Python七号', 'author': 'somenzz'}]

是不是很方便?

最后的话

本文分享了 3 个轻量级的 Python 文件型数据库,它们都非常简单易用,希望对你的编程有所帮助。独学而无友,则孤陋而寡闻,因此我组建了一个纯技术交流群,关注公众号「Python七号」回复「入群」加入技术交流群。

9ca6ddec959d773b0bec7df4087ceda8.png

参考资料

[1]

shelve: https://docs.python.org/zh-cn/3/library/shelve.html

[2]

pickleDB: https://pythonhosted.org/pickleDB/

[3]

TinyDB: https://tinydb.readthedocs.io/en/latest/


http://chatgpt.dhexx.cn/article/E4BMQErs.shtml

相关文章

sqlite原理分析和开发应用

概述 SQLite介绍 自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系统资源,增加了管理的复杂性。随着软件应用程序逐渐模块模块…

SQLite3-轻量级数据库

SQLite主页:SQLite Home Page SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使…

Wise Duplicate Finder(重复文件查找工具)v1.2.9.40中文免费版

Wise Duplicate Finder是一款简洁高效的重复文件管理工具,通过匹配文件名,文件大小或内容来查找和删除重复的文件,使用户摆脱烦人的重复文件,释放更多磁盘空间,有需要的赶快下载吧! 功能介绍: …

如何查找和删除Endnote中重复的文献

点击Reference,在列表中找到“Find Duplicates”

Linux命令模糊查找

1,在某文件夹下查找,且模糊匹配 find . -name xx* 且中间都必须用空格间隔 2,mv 命令格式运行结果mv 文件名 文件名将源文件名改为目标文件名mv 文件名 目录名将文件移动到目标目录mv 目录名 目录名目标目录已存在,将源目录…

文件包含漏洞详解

文章目录 文件包含概述漏洞产生原因漏洞特点小知识文件包含函数includerequireinclude_oncerequire_once 文件包含示例pikachu靶场本地文件包含漏洞演示pikachu靶场远程文件包含漏洞演示文件包含漏洞的利用PHP伪协议(文件包含漏洞常用的利用方法)文件包含…

【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令

文章目录 whereishelpmanfindlocategrepwc管道 whereis 功能描述:寻找命令的二进制文件。 同时也会找到其帮助文件,主要功能是寻找一个命令所在的位置。和find相比,whereis查找的速度非常快。 语法: whereis [选项] [命令名称] …

用 Python 实现文件查找

用 Python 实现文件查找(BIF实现及队列实现) (1)利用内置函数实现文件查找 1、功能:返回用户输入的文件的绝对路径 2、设计思路: (1)用户输入在哪个盘进行查找(2&#xf…

如何测试电脑软件重复或多,如何快捷找出电脑内的重复文件(两个工具)

我特喜欢收集各种软件和资料,但是时间久了,很多软件和资料之前下载过了,后来不记得了,又下载了,这样重复的非常多。还有,我喜欢备份文件,就算一些普通的文件,也会随手临时备份一下&a…

使用代码克隆检测功能查找重复代码

代码克隆是非常相似的独立代码片段。 在已开发一段时间的应用程序中,常会出现这种现象。 克隆提高了更改应用程序的难度,因为你必须找到并更新多个片段。 Visual Studio Ultimate 或 Visual Studio Premium 可帮助你查找代码克隆,以便你进行重…

计算机上的查找替换功能快速格式化,Excel 2016中使用查找替换功能应用技巧

大家知道Excel中有查找和替换这个功能,懂得按住【Ctrl+F】可以直接打开“查找”对话框,按住【Ctrl+H】直接打开“替换”对话框。但你真的很了解这个功能了吗? 在使用Excel的时候,对于其中的查找功能的使用基本是比不可少的,那Excel中都可以在哪里进行查找呀。下面说下在Ex…

虚拟化、文件系统、查找文件

文章目录 虚拟化虚拟化的概念安装KVM安装gustos了解并配置KVM网络桥接:NAT:仅主机(hostonly): 文件系统了解文件系统的概念:了解硬链接的概念:挂载文件系统: 查找文件: 虚拟化 虚拟化的概念 虚拟化≠虚拟机 虚拟化里…

Duplicate Cleaner Pro(电脑重复文件清理软件)官方中文版V5.15.0 | 重复文件查找王下载

Duplicate Cleaner Pro 是一款相当出色的电脑重复文件清理软件,有重复文件查找王的美誉,支持字节、MD5以及其他多种哈希算法等内容比对方式,主要功能就是帮助大家从计算机硬盘中深入快速扫描查找并删除重复的文件、音乐、视频、照片、文档以及…

python删除重复文件

使用场景 网上爬取的图片重复量太大,需要删除重复图片。 环境 python 3 hashilib 分析一下这个问题: 首先,文件个数非常多,手工查找是不现实的,再说,单凭我们肉眼,在几千张图片或文件里面找…

工具及方法 - 使用Total Commander来查找重名文件

我只是一个Total Commander的轻度使用者,主要使用的是打开多个窗口,可以方便的以标签形式切换。 还有,这个软件是免费的,只是免费版打开时多一步,要输入个数字验证。 今天在使用一个SDK时,要包含进很多头文…

在群晖中批量删除重复文件

安装“存储空间分析器”套件配置“重复文件候选”报告,并生成报告查看并下载报告用excel打开报告并筛选出需要删除的文件 IF(A2A1,1,"")上传文件到群晖,并配置计划任务 cat 文件路径 | xargs -I {} rm -f "{}"执行并删除计划任务提醒…

在 QNAP(威联通)NAS 上自动查找和删除 重复文件 的方法

Qidi 2020.12.12 0. 前言 看到很多人说在 QNAP NAS 上使用 fdupes 工具只能实现查找重复文件的效果,要删除文件只能对照生成的重复文件列表手动操作。这个说法其实是不对的,fdupes 完全支持自动去重功能。 以下正文说明了使用 fdupes 工具自动查找并删…

硬盘快满了,怎么办?查找重复文件

硬盘快满了,怎么办?查找重复文件,绿色版 链接:https://pan.baidu.com/s/1nbhRhninawNLK5CHZfanWA 提取码:yu37 序列号 TDFP-XWAL-EPNX-ALWN-LLLLLL 它非常易于使用,只需要选择资源(驱动器&…

重复文件查找工具

电脑在经过长时间的使用后,会存在着大量重复的无用文件,这些文件会占用我们电脑中有限的磁盘空间,虽然现在我们的磁盘空间都是够大了,这些重复文件也许不算什么,但是它们会影响到系统的效能,并且我们还是要…

计算机一级查找同类型文件,如何快捷找出电脑内的重复文件

有时特喜欢收集各种软件和资料,但是时间久了,很多软件和资料之前下载过了,后来不记得了,又下载了,这样重复的非常多。这样重复的文件多了,占了大量的磁盘空间,也影响电脑运行性能,当…