在Python中,如何在TinyDB数据库中搜索值中的子字符串?

时间:2015-12-27 01:41:24

标签: python string search tinydb

我为项目创建了一个数据库,我希望能够在数据库中搜索值,但不仅仅是简单的==操作。例如,如果有人在“哥伦比亚”中键入搜索内容,我希望将“哥伦比亚大学”字典作为该特定人员的“关联”键的值

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式进行搜索:

>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))

这些对应于Python的re.matchre.search,其中后者搜索可能从字符串中的任何位置开始的occurenc。

或者,您可以使用自定义测试表达式,如下所示:

>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))

有关详细信息,请参阅relevant section of the TinyDB docs