我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作要好。例如,如果有人输入“哥伦比亚”进行搜索,我希望字典中包含“哥伦比亚大学”作为该特定人的“从属关系”键的值
问问题
2311 次
1 回答
2
您可以使用正则表达式进行搜索:
>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))
这些对应于 Python re.match
,re.search
后者在其中搜索可能从字符串中的任何位置开始的发生。
或者,您可以使用自定义测试表达式,如下所示:
>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))
有关更多详细信息,请参阅TinyDB 文档的相关部分。
于 2015-12-31T13:41:16.187 回答