文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

TinyDB轻量级数据库怎么使用

2023-07-06 12:02

关注

这篇文章主要介绍“TinyDB轻量级数据库怎么使用”,在日常操作中,相信很多人在TinyDB轻量级数据库怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”TinyDB轻量级数据库怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

TinyDB 是一个纯 Python 编写的轻量级数据库,一共只有1800行代码,没有外部依赖项。

TinyDB的目标是降低小型 Python 应用程序使用数据库的难度,对于一些简单程序而言与其用 SQL 数据库,不如就用TinyDB, 因为它有如下特点:

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上。

请选择以下任一种方式输入命令安装依赖:

Windows 环境 打开 Cmd (开始-运行-CMD)。

MacOS 环境 打开 Terminal (command+空格输入Terminal)。

如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install tinydb

2.简单的增删改查示例

初始化一个DB文件:

from tinydb import TinyDBdb = TinyDB('db.json')

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

往里面插入数据:

from tinydb import TinyDBdb = 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} for i in range(2))

查询所有数据:

from tinydb import TinyDBdb = TinyDB('db.json')db.all()# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]

除了 .all() 我们还可以使用for循环遍历db:

from tinydb import TinyDBdb = TinyDB('db.json')for item in db: print(item)# {'count': 7, 'type': 'apple'}# {'count': 3, 'type': 'peach'}

如果你需要搜索特定数据,可以使用Query():

from tinydb import TinyDBdb = TinyDB('db.json')Fruit = Query()db.search(Fruit.type == 'peach')# [{'count': 3, 'type': 'peach'}]db.search(Fruit.count > 5)# [{'count': 7, 'type': 'apple'}]

更新数据:

from tinydb import TinyDBdb = TinyDB('db.json')db.update({'foo': 'bar'})# 删除某个Keyfrom tinydb.operations import deletedb.update(delete('key1'), User.name == 'John')

删除数据:

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

from tinydb import TinyDBdb = TinyDB('db.json')db.remove(Fruit.count < 5)db.all()# [{'count': 10, 'type': 'apple'}]

清空整个数据库:

from tinydb import TinyDBdb = TinyDB('db.json')db.truncate()db.all()# []

3.高级查询

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

# 写法1db.search(User.country-code == 'foo')# 写法2db.search(User['country-code'] == 'foo')

这两种写法是等效的。

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

from tinydb import wheredb.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'))

到此,关于“TinyDB轻量级数据库怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯