TinyDB - test() 查询
test() 查询将测试给定参数是否与表中的数据匹配。 如果与数据匹配,则返回匹配的数据,否则返回空白。 首先,我们需要定义一个 test 函数及其参数,然后它将在给定数据库中搜索该项目。
语法
TinyDB test()的语法如下 −
db.search(Query().field.test(function or condition, *arguments))
这里,field代表我们想要访问的数据部分。 Query() 是我们名为 student 的 JSON 表创建的对象。
我们可以创建一个自定义测试函数,如下所示 −
object = lambda t: t == 'value'
此处 lamba 关键字对于创建自定义测试函数非常重要。
让我们通过几个示例来了解它是如何工作的。 我们将使用与前面所有章节中使用的相同的student数据库。
示例 1
我们将首先创建一个测试函数,然后在我们的student表中使用它 −
from tinydb import TinyDB, Query db = TinyDB('student.json') objects = lambda t: t == [250, 280] db.search(Query().mark.test(objects))
它将获取"mark"字段具有值 [250, 280] 的行 −
[{'roll_number': 2, 'st_name': 'Ram', 'mark': [250, 280], 'subject': ['TinyDB', 'MySQL'], 'address': 'delhi'}]
示例 2
在此示例中,我们将在测试函数中使用"subject"字段 −
student = Query() db = TinyDB('student.json') objects = lambda t: t == 'TinyDB' db.search(student.subject.test(objects))
此查询将获取"subject"字段值为"TinyDB"的所有行 −
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":5, "st_name":"karan", "mark":275, "subject":"TinyDB", "address":"benglore" } ]