编程学习网 > 编程语言 > Python > 这3个Python轻量级数据库,好用到爆!
2022
08-02

这3个Python轻量级数据库,好用到爆!

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

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

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

Shelve

如果说 Python 中的字典(dict)是保存在内存中的,那么标准库 shelve就像是保存在文件中的字典,它的值可以为为任意 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是一个轻量级且简单的键值对存储。它建立在 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的优点是非常快,非常简单易用。TinyDB 的接口类似于许多键值存储,但提供了许多附加功能,例如编写自己的存储中间件能力。

用法:

import tinydb

db = 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'}]

是不是很方便?想要了解更多关于Python教程欢迎持续关注编程学习

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取