【发布时间】:2015-12-27 01:41:24
【问题描述】:
我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作更好。例如,如果有人输入“columbia”进行搜索,我希望字典中包含“Columbia University”作为该特定人的“Affiliation”键的值
【问题讨论】:
标签: python string search tinydb
我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作更好。例如,如果有人输入“columbia”进行搜索,我希望字典中包含“Columbia University”作为该特定人的“Affiliation”键的值
【问题讨论】:
标签: python string search tinydb
您可以使用正则表达式进行搜索:
>>> 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'))
更多详情,请参考relevant section of the TinyDB docs。
【讨论】: