前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最近发现的 3 个 Python 轻量级数据库,好用到爆!

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

作者头像
somenzz
发布2022-10-25 20:08:52
6250
发布2022-10-25 20:08:52
举报
文章被收录于专栏:Python七号Python七号

你好,我是征哥,在写程序的时候经常会需要将数据保存到本地,比如是配置文件,或者是中间过程数据,通过情况下我会选择 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)

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

代码语言:javascript
复制
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 进行安装。

使用方法:

代码语言:javascript
复制
>>> 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 的接口类似于许多键值存储,但提供了许多附加功能,例如编写自己的存储中间件能力。

用法:

代码语言:javascript
复制
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'}]

还可以这样用:

代码语言:javascript
复制
>>> 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 文件型数据库,它们都非常简单易用,希望对你的编程有所帮助。独学而无友,则孤陋而寡闻

参考资料

[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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shelve
  • pickleDB
  • TinyDB
  • 最后的话
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档