在 Python 中,如何在 TinyDB 数据库中搜索值中的子字符串?
In Python, how do I search a TinyDB database for substrings in the values?
我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作要好。例如,如果有人输入 "columbia" 进行搜索,我希望字典中包含 "Columbia University " 作为该特定人 "Affiliation" 键的值
您可以使用正则表达式进行搜索:
>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))
这些对应于 Python 的 re.match
and re.search
,其中后者搜索可能在字符串中任何位置开始的出现。
或者,您可以像这样使用自定义测试表达式:
>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))
有关详细信息,请参阅 relevant section of the TinyDB docs。
我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作要好。例如,如果有人输入 "columbia" 进行搜索,我希望字典中包含 "Columbia University " 作为该特定人 "Affiliation" 键的值
您可以使用正则表达式进行搜索:
>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))
这些对应于 Python 的 re.match
and re.search
,其中后者搜索可能在字符串中任何位置开始的出现。
或者,您可以像这样使用自定义测试表达式:
>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))
有关详细信息,请参阅 relevant section of the TinyDB docs。