Python编程:TinyDB库MongoBD的简易替代

简介: Python编程:TinyDB库MongoBD的简易替代

TinyDB 是一个轻量级的文档数据库,操作类似MongoBD,其存储方式为Json


文档:https://tinydb.readthedocs.io/en/latest/index.html

github:https://github.com/msiemens/tinydb


代码示例

# -*- coding: utf-8 -*-
from tinydb import TinyDB, Query
db = TinyDB('db.json')
student = db.table("student")
# 插入数据
student.insert({"name": "Tom", "age": 23})
# 插入多条
student.insert_multiple([
    {"name": "Jack", "age": 24},
    {"name": "mary", "age": 25}
])
# 查询所有
print(student.all())
[
  {'name': 'Tom', 'age': 23},
  {'name': 'Jack', 'age': 24},
  {'name': 'mary', 'age': 25}
]
# 查询部分
query = Query()
result = student.search(query.name == 'Tom')
print(result)
# [{'name': 'Tom', 'age': 23}]
result = student.search(query.age > 24)
print(result)
# [{'name': 'mary', 'age': 25}]
# 逻辑查询
db.search(~ (User.name == 'John'))  # Negate
db.search((User.name == 'John') & (User.age <= 30))  # And
db.search((User.name == 'John') | (User.name == 'Bob'))  # Or
# 更新
student.update({'age': 26}, query.name == "Tom")
print(student.search(query.name=="Tom"))
# [{'name': 'Tom', 'age': 26}]
# 删除
student.remove(query.age < 25)
print(student.all())
# [{'name': 'Tom', 'age': 26}, {'name': 'mary', 'age': 25}]
# 关闭
db.close()

打开目录下的db.json, 查看其存储格式

{
    "_default":{
    },
    "student":{
        "1":{
            "name":"Tom",
            "age":26
        },
        "3":{
            "name":"mary",
            "age":25
        }
    }
}
相关文章
|
4天前
|
数据挖掘 数据处理 Python
Python编程入门:从基础到实践
【6月更文挑战第26天】这篇文章引导读者逐步学习Python编程,从基础语法如变量、数据类型(整数、浮点数、字符串)到条件语句、循环(if/for/while),再到函数定义和模块导入。通过实例展示了Python在文本处理、数据分析(使用pandas)和Web开发(使用Flask)的应用。学习Python能为初学者开启更广阔的技术领域,如面向对象编程、并发和网络编程等。
|
2天前
|
设计模式 程序员 测试技术
老程序员分享:Python数据模型及Pythonic编程
老程序员分享:Python数据模型及Pythonic编程
10 1
|
6天前
|
监控 搜索推荐 UED
用Python的pynput库追踪每一次点击和滚动
使用Python的`pynput`库可监听鼠标活动,包括点击和滚动事件。安装`pynput`后,通过`mouse.Listener`捕获鼠标事件。示例代码展示如何记录点击位置、滚动方向,并创建日志文件。通过类封装,可控制记录器的启停,并实现特定模式下的响应,如快速三连击左键自动打开网站。动手实践,将理论转化为实用工具。
|
5天前
|
Python
Python多进程编程详细剖析
Python多进程编程详细剖析
14 3
|
2天前
|
程序员 API 计算机视觉
技术经验解读:【python自动化】02.pywin32库自动操作键鼠(保姆级代码注释)
技术经验解读:【python自动化】02.pywin32库自动操作键鼠(保姆级代码注释)
|
2天前
|
Linux 数据处理 C语言
经验大分享:python3使用libpcap库进行抓包及数据处理
经验大分享:python3使用libpcap库进行抓包及数据处理
|
3天前
|
索引 Python 容器
Python数据类型:编程新手的必修课
Python数据类型:编程新手的必修课
|
3天前
|
Linux 数据处理 C语言
经验大分享:python3使用libpcap库进行抓包及数据处理
经验大分享:python3使用libpcap库进行抓包及数据处理
10 0
|
3天前
|
Python
python re 正则表达式库的使用
python re 正则表达式库的使用
4 0
|
3天前
|
算法 Java 程序员
Python面相对象的编程
Python面相对象的编程