当前位置: 首页 > news >正文

python——TinyDB

TinyDB 是一个轻量级的纯 Python 写入的文档数据库。它不需要单独的服务器进程或复杂的配置,只需导入模块即可开始使用。TinyDB 适合于小型项目或测试用例,它的数据存储在本地文件中。

TinyDB 的基本 API 和使用方式:

  1. 初始化数据库

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

    这将创建一个数据库实例,并指定数据存储的文件名。如果文件不存在,TinyDB 将自动创建它。

  2. 插入数据

    db.insert({'name': 'John', 'age': 30})
    

    这将向数据库中插入一条记录。

  3. 查询数据
    TinyDB 使用 Query 对象来构建查询语句:

    from tinydb import QueryPerson = Query()
    result = db.search(Person.name == 'John')
    print(result)
    

    这将返回所有 name 字段等于 ‘John’ 的记录。

  4. 更新数据

    db.update({'age': 31}, Person.name == 'John')
    

    这将更新所有 name 字段等于 ‘John’ 的记录中的 age 字段为 31。

  5. 删除数据

    db.remove(Person.name == 'John')
    

    这将删除所有 name 字段等于 ‘John’ 的记录。

  6. 获取所有数据

    all_data = db.all()
    
  7. 排序数据

    sorted_data = db.search(Person.age.exists()).sort(key=lambda item: item['age'])
    
  8. 索引和存储类型
    TinyDB 提供了 storage 参数来更改数据的存储方式,以及 default_table 参数来设置默认表名。

  9. 中间件
    TinyDB 支持中间件,可以用来扩展其功能,例如添加缓存。

示例代码:

from tinydb import TinyDB, Query# 初始化数据库
db = TinyDB('db.json')# 插入数据
db.insert({'name': 'Alice', 'age': 25})
db.insert({'name': 'Bob', 'age': 30})# 查询数据
Person = Query()
result = db.search(Person.age > 25)
print(result)  # 输出满足条件的记录# 更新数据
db.update({'age': 31}, Person.name == 'Bob')# 删除数据
db.remove(Person.name == 'Alice')# 关闭数据库
db.close()

请注意,TinyDB 不是一个生产级别的数据库系统,对于大规模数据或高并发访问的应用,可能需要考虑更健壮的解决方案,如 MongoDB 或 PostgreSQL。但是,对于简单的应用或快速原型设计,TinyDB 是一个很好的选择。

http://www.lryc.cn/news/405777.html

相关文章:

  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十八章 驱动模块编译进内核
  • Mailspring搭建安装教程:打造个性邮件体验
  • 【分布式锁】Redission实现分布式锁
  • UE4/5 对话系统
  • Golang | Leetcode Golang题解之第275题H指数II
  • Python—面向过程编程,详细讲解(类和实例,初始化函数,类中封装数据与操作)
  • Linux云计算 |【第一阶段】SERVICES-DAY2
  • el-upload照片墙自定义上传多张图片(手动一次性上传多张图片)包含图片回显,删除
  • 三星Unpacked发布会即将举行:有新款折叠屏手机,还有智能戒指
  • 【Python】Matplotlib简要教程
  • 数驭未来,景联文科技构建高质大模型数据库
  • 视频汇聚平台EasyCVR启动出现报错“cannot open shared object file”的原因排查与解决
  • VMware 安装完,设备管理器中没有虚拟网卡(vmnet0、wmnet1、vmnet8) / 虚拟网络编辑器中没有桥接模式
  • 构建高效Node.js中间层:探索请求合并转发的艺术
  • 中断和EXIT原理介绍
  • vcpkg或者命令行需要设置代理时如何设置
  • tensorflow安装及数据操作----学习笔记(一)
  • 顺序表和单链表的经典算法题
  • python基础知识点(蓝桥杯python科目个人复习计划71)
  • 【大数据专题】Flink题库
  • Python鲁汶意外莱顿复杂图拓扑分解算法
  • 【C++】类和对象之继承
  • 如何在LlamaIndex中使用RAG?
  • css气泡背景特效
  • 7.23模拟赛总结 [数据结构优化dp] + [神奇建图]
  • MySQL-视 图
  • PHP SimpleXML
  • 【Spring Boot 自定义配置项详解】
  • 电机相位接线错误导致的潜在问题
  • react中如何mock数据