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

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

作者头像
somenzz
发布2022-10-25 20:08:52
1.2K0
发布2022-10-25 20:08:52
举报
文章被收录于专栏: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
  • 最后的话
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档