0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TinyDB轻量级数据库有哪些特点呢

数据分析与开发 来源:Python实用宝典 作者:Ckend 2022-10-28 14:07 次阅读

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.准备

开始之前,需要先安装它

pip installtinydb

2.简单的增删改查示例

初始化一个DB文件:

fromtinydb importTinyDB
db = TinyDB('db.json')

这样就在当前文件夹下生成了一个名为 `db.json` 的数据库文件。

往里面插入数据

fromtinydb importTinyDB
db = TinyDB('db.json')
db.insert({'type': 'apple', 'count': 7})
db.insert({'type': 'peach', 'count': 3})
可以看到,我们可以直接往数据库里插入字典数据,不需要任何处理。下面是批量插入的方法:
db.insert_multiple([
{'name': 'John', 'age': 22},
{'name': 'John', 'age': 37}])
db.insert_multiple({'int': 1, 'value': i} fori inrange(2))

查询所有数据

fromtinydb importTinyDB
db = TinyDB('db.json')
db.all()
# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
除了 .all() 我们还可以使用for循环遍历db:
fromtinydb importTinyDB
db = TinyDB('db.json')
foritem indb:
print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}
如果你需要搜索特定数据,可以使用Query():
fromtinydb importTinyDB
db = TinyDB('db.json')
Fruit = Query()
db.search(Fruit.type == 'peach')
# [{'count': 3, 'type': 'peach'}]
db.search(Fruit.count > 5)
# [{'count': 7, 'type': 'apple'}]

更新数据:

fromtinydb importTinyDB
db = TinyDB('db.json')
db.update({'foo': 'bar'})

# 删除某个Key
fromtinydb.operations importdelete
db.update(delete('key1'), User.name == 'John')
删除数据

删除数据也可以使用类似的条件语句:

fromtinydb importTinyDB
db = TinyDB('db.json')
db.remove(Fruit.count < 5)
db.all()
# [{'count': 10, 'type': 'apple'}]
清空整个数据库:
fromtinydb importTinyDB
db = TinyDB('db.json')
db.truncate()
db.all()
# []

3.高级查询

除了点操作符访问数据,你还可以用原生的dict访问表示法:

# 写法1
db.search(User.country-code == 'foo')
# 写法2
db.search(User['country-code'] == 'foo')
这两种写法是等效的。

另外在常见的查询运算符(==, <, >, ...)之外,TinyDB还支持where语句:

fromtinydb importwhere
db.search(where('field') == 'value')
这等同于:
db.search(Query()['field'] == 'value')
这种语法还能访问嵌套字段:
db.search(where('birthday').year == 1900)
# 或者
db.search(where('birthday')['year'] == 1900)
Any 查询方法:
db.search(Group.permissions.any(Permission.type == 'read'))
# [{'name': 'user', 'permissions': [{'type': 'read'}]},
# {'name': 'sudo', 'permissions': [{'type': 'read'}, {'type': 'sudo'}]},
# {'name': 'admin', 'permissions':
# [{'type': 'read'}, {'type': 'write'}, {'type': 'sudo'}]}]
检查单个项目是否包含在列表中:
db.search(User.name.one_of(['jane', 'john']))
TinyDB还支持和Pandas类似的逻辑操作:
# Negate a query:
db.search(~ (User.name == 'John'))
# Logical AND:
db.search((User.name == 'John') & (User.age <= 30))
# Logical OR:
db.search((User.name == 'John') | (User.name == 'Bob'))







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3191

    浏览量

    62862
  • python
    +关注

    关注

    51

    文章

    4061

    浏览量

    82756
收藏 人收藏

    评论

    相关推荐

    木棉花:轻量级偏好数据库学习笔记--沈泳鑫

    ,我们需要先了解一下数据库什么作用,我们学完之后才能够学以致用。顾名思义,数据库肯定是具有存储功能的。这轻量级偏好数据库的话,不仅具有储存数据的功能,还具备将数据持久化的功能。应用运行时
    发表于 09-04 14:30

    基于轻量级偏好数据库,实现存储在本地应用数据的访问及操作

    轻量级偏好数据库轻量级存储,主要用于保存应用的一些常用配置。它是使用键值对的形式来存储数据的,保存数据时,需要给这条数据提供一个键,读取数据时再通过这个键把对应的值取出来。说明轻量级偏好
    发表于 10-09 14:43

    HarmonyOS数据库的相关资料下载

    数据库篇之轻量级数据存储HarmonyOS中的数据库存储主要分为3种形式:1. 轻量级数据存储2. 关系型数据库数据存储3. 对象关系映射数据库数据存储2
    发表于 03-28 11:13

    深度剖析OpenHarmony轻量级数据存储

    轻量级数据存储的版本openharmony的轻量级数据存储现有两个版本,但是harmonyOS的官网上只有一个轻量级数据存储。二、应用目录的获取数据存储需要获取到应用的存放目录,便于新建存储
    发表于 03-31 14:45

    数据库学习教程之数据库的发展状况如何数据库什么新发展

    数据库学习教程之数据库的发展状况如何数据库什么新发展主要内容包括了:1 数据库技术发展概述2 数据库发展的3个阶段3 数据库系统发展的特点4 数据库技术发展趋势
    发表于 10-25 16:29 5次下载
    <b>数据库</b>学习教程之<b>数据库</b>的发展状况如何<b>数据库</b><b>有</b>什么新发展

    Access二级数据库程序设计

    级数据库程序设计(电源技术应用往期刊)-文档为Access二级数据库程序设计总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
    发表于 09-17 14:33 1次下载
    Access二<b>级数据库</b>程序设计

    用于openharmony的轻量级、简单的结构化NoSQL数据库

    轻量级、简单的结构化 NoSQL 数据库。 下载 依赖项{ 实现“io.openharmony.tpc.thirdlib:ohos-NoSql:1.0.0” } 将
    发表于 04-13 10:05 2次下载

    PSoC NeoPixel Easy轻量级

    轻量级.zip》资料免费下载
    发表于 11-17 09:48 0次下载
    PSoC NeoPixel Easy<b>轻量级</b><b>库</b>

    Android游戏开发之SQLite数据库

    轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,只需要几百KB!!!!!
    发表于 02-21 09:59 1698次阅读
    Android游戏开发之SQLite<b>数据库</b>

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

    TinyDB的目标是降低小型 Python 应用程序使用数据库的难度,对于一些简单程序而言与其用 SQL 数据库,不如就用TinyDB, 因为它有如下特点
    的头像 发表于 10-28 14:16 625次阅读

    SQLite数据库特点 SQLite数据库简单介绍

    数据库管理系统。 SQLite数据库特点: 1. 轻量级:SQLite数据库是一种非常轻量级数据库,其数据库引擎只有几百KB,因此可以非常方便地嵌入到其他应用程序中使用。 2. 简单易用:SQ
    的头像 发表于 08-28 16:40 900次阅读

    什么是Sqlite数据库

    数据库?  Sqlite数据库是一种轻量级的关系型数据库管理系统。它被开源软件组织SQLite Consortium所开发,该组织由D. Richard Hipp所创
    的头像 发表于 08-28 16:41 308次阅读

    轻量级数据库哪些

    轻量级数据库哪些 随着互联网和物联网等新一代信息技术的广泛应用,数据库系统也变得越来越重要。人们对于数据库数据库的可靠性、安全性和性能等要求也越来越高。与传统的关系型数据库系统相比,
    的头像 发表于 08-28 16:41 748次阅读

    数据库应用及其特点 数据库数据的基本特点

    数据库应用及其特点 数据库数据的基本特点  数据库应用及其特点 随着计算机技术的不断发展和普及,数据处理已经成为各企业、机构和个人不可或缺的一部分。而数据库应用是以计算机技术为基础实现数据存储、处理
    的头像 发表于 08-28 17:22 372次阅读