hello,大家好,我是wangzirui32,今天来教大家如何使用TinyDB来管理JSON数据库,开始学习吧!
pip安装命令:
pip install tinydb
没有报错即安装成功。
先来看个简单的例子,代码:
# 导入TinyDB
from tinydb import TinyDB
# 创建一个名为database.json的JSON数据库
db = TinyDB("database.json")
# 关闭连接
db.close()
运行代码,可以看到在当前目录下出现一个JSON数据库。
在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"}}}
可以使用如下函数:
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"}}}
在数据库当中,查询应该是最最常用的操作了,先来学习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'}]
这个对象可强大了,首先看一段代码:
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)
可以使用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"}}}
这里使用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()
文档链接:https://tinydb.readthedocs.io/en/latest/index.html
还有其他需求的可以前往官方文档进行了解。
好了,今天的课程就到这里,喜欢的可以点个收藏和关注,我是wangzirui32,我们下次再见!