Python:在小型项目中使用JSON数据库的利器——TinyDB

hello,大家好,我是wangzirui32,今天来教大家如何使用TinyDB来管理JSON数据库,开始学习吧!

1. pip安装

pip安装命令:

pip install tinydb

没有报错即安装成功。

2. 创建JSON数据库

先来看个简单的例子,代码

# 导入TinyDB
from tinydb import TinyDB
# 创建一个名为database.json的JSON数据库
db = TinyDB("database.json")
# 关闭连接
db.close()

运行代码,可以看到在当前目录下出现一个JSON数据库

3. JSON数据库表操作

3.1 创建数据表并添加一个数据

在TinyDB中,创建一个数据表很简单:

from tinydb import TinyDB
db = TinyDB("database.json")
# 创建了一个名为Users的数据表
table = db.table("Users")
# 向表内添加用户数据
index = table.insert({"name": "Sally", "password": "123456"})
# 输出数据的索引
print("添加索引:", index)
db.close()

运行代码输出

1

打开database.json:

{"Users": {"1": {"name": "Sally", "password": "123456"}}}

3.2 添加多个数据

可以使用如下函数

from tinydb import TinyDB
db = TinyDB("database.json")
table = db.table("Users")
# 添加两项数据
index = table.insert_multiple([{"name": "John", "password": "101234"},
                               {"name": "Wangzirui32", "password": "123906"}])
print(index)
db.close()

输出

[2, 3]

database.json内容变为:(太长了,有些数据分行展示)

{"Users": {"1": {"name": "Sally", "password": "123456"},
		   "2": {"name": "John", "password": "101234"},
		   "3": {"name": "Wangzirui32", "password": "123906"}}}

3.3 查询数据

3.3.1 all函数

数据库当中,查询应该是最最常用的操作了,先来学习all函数

from tinydb import TinyDB
db = TinyDB("database.json")
# 依旧是Users表
table = db.table("Users")
# 输出所有的数据项
print(table.all())
db.close()

运行代码

[{'name': 'Sally', 'password': '123456'},
 {'name': 'John', 'password': '101234'},
 {'name': 'Wangzirui32', 'password': '091234'}]

3.3.2 Query对象

这个对象可强大了,首先看一段代码

from tinydb import TinyDB, Query

db = TinyDB("database.json")
table = db.table("Users")

# 创建一个用户查询对象
User = Query()
# 查询一个用户名为Sally的数据
query_data = table.search(User.name=="Sally")
# 打印查询数据
print(query_data)

db.close()

运行代码

[{'name': 'Sally', 'password': '123456'}]

还可以添加<>=等逻辑运算,如比较用户的年龄:

# 一个设想中的例子...
query_data = table.search(User.age > 15)

3.4 更新数据

可以使用where对象:

from tinydb import TinyDB, where  # 注意:要导入where

db = TinyDB("database.json")
table = db.table("Users")

"""
数据更新
条件 name="wangzirui32"
将 password属性 改为"091234"
"""
update_index = table.update({"password": "091234"}, where("name")=="Wangzirui32")
print("更新的数据索引为:", update_index)
db.close()

运行代码之后的数据库

{"Users": {"1": {"name": "Sally", "password": "123456"},
		   "2": {"name": "John", "password": "101234"},
		   "3": {"name": "Wangzirui32", "password": "091234"}}}

可以看到,Wangzirui32用户的密码变为了091234。
当然,还可以和Query对象结合:

from tinydb import TinyDB, Query

db = TinyDB("database.json")
table = db.table("Users")
# 创建一个用户查询对象 但是它不用做查询
User = Query()
"""
数据更新
将 name="Sally" 的用户
password 属性改为 "654321"
"""
update_index = table.update({"password": "654321"}, User.name=="Sally")
print("更新的数据索引为:", update_index)
db.close()

运行代码之后的数据库

{"Users": {"1": {"name": "Sally", "password": "654321"},
		   "2": {"name": "John", "password": "101234"},
		   "3": {"name": "Wangzirui32", "password": "091234"}}}

3.5 删除数据

这里使用Query对象比较方便,因为它既可以用作查询,又可以用在更新数据,删除数据等操作。代码

from tinydb import TinyDB, Query

db = TinyDB("database.json")
table = db.table("Users")
User = Query()

# 删除用户名为John的数据
remove_index = table.remove(User.name=="John")

print("删除的索引为:", remove_index)
db.close()

4. 官方文档链接

文档链接https://tinydb.readthedocs.io/en/latest/index.html
还有其他需求的可以前往官方文档进行了解。


好了,今天的课程就到这里,喜欢的可以点个收藏和关注,我是wangzirui32,我们下次再见!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...