TinyDB 一个纯Python编写的轻量级数据库

AI-摘要
PFS GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
TinyDB 是一个纯 Python 编写的轻量级数据库,一共只有1800行代码,没有外部依赖项。
TinyDB的目标是降低小型 Python 应用程序使用数据库的难度,对于一些简单程序而言与其用 SQL 数据库,不如就用TinyDB, 因为它有如下特点:
- **轻便:**当前源代码有 1800 行代码(大约 40% 的文档)和 1600 行测试代码。
- **可随意迁移:**在当前文件夹下生成数据库文件,不需要任何服务,可以随意迁移。
- **简单:**TinyDB 通过提供简单干净的 API 使得用户易于使用。
- 用纯 Python 编写: TinyDB 既不需要外部服务器,也不需要任何来自 PyPI 的依赖项。
- 适用于 Python 3.6+ 和 PyPy3: TinyDB 适用于所有现代版本的 Python 和 PyPy。
- **强大的可扩展性:**您可以通过编写中间件修改存储的行为来轻松扩展 TinyDB。
- **100% 测试覆盖率:**无需解释。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上。
请选择以下任一种方式输入命令安装依赖:
- Windows 环境 打开 Cmd (开始-运行-CMD)。
- MacOS 环境 打开 Terminal (command+空格输入Terminal)。
- 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
1 | pip install tinydb |
2.简单的增删改查示例
初始化一个DB文件:
1 | from tinydb import TinyDB |
这样就在当前文件夹下生成了一个名为 db.json 的数据库文件。
往里面插入数据:
1 | from tinydb import TinyDB |
可以看到,我们可以直接往数据库里插入字典数据,不需要任何处理。下面是批量插入的方法:
1 | db.insert_multiple([ |
查询所有数据:
1 | from tinydb import TinyDB |
除了 .all() 我们还可以使用for循环遍历db:
1 | from tinydb import TinyDB |
如果你需要搜索特定数据,可以使用Query():
1 | from tinydb import TinyDB |
更新数据:
1 | from tinydb import TinyDB |
删除数据:
删除数据也可以使用类似的条件语句:
1 | from tinydb import TinyDB |
清空整个数据库:
1 | from tinydb import TinyDB |
3.高级查询
除了点操作符访问数据,你还可以用原生的dict访问表示法:
1 | # 写法1 |
这两种写法是等效的。
另外在常见的查询运算符(==, <, >, …)之外,TinyDB还支持where语句:
1 | from tinydb import where |
这等同于:
1 | db.search(Query()['field'] == 'value') |
这种语法还能访问嵌套字段:
1 | db.search(where('birthday').year == 1900) |
Any 查询方法:
1 | db.search(Group.permissions.any(Permission.type == 'read')) |
检查单个项目是否包含在列表中:
1 | db.search(User.name.one_of(['jane', 'john'])) |
TinyDB还支持和Pandas类似的逻辑操作:
1 | # Negate a query: |
TinyDB的介绍就到这里,你还可以访问他们的官方文档,查看更多的使用方法:
https://tinydb.readthedocs.io/en/latest/usage.html
尤其是想基于TinyDB做些存储优化的同学,你们可以详细阅读 Storage & Middleware 章节。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Panjoel's Blog!
评论
匿名评论
你无需删除空行,直接评论以获取最佳展示效果









