В Python, как мне искать в базе данных TinyDB подстроки в значениях?
Я создал базу данных для проекта, и я хочу иметь возможность искать в базе данных значение, но лучше, чем простая операция ==. Например, если кто-то вводит слово "columbia" для поиска, я хочу, чтобы словарь со значением "Columbia University " использовался в качестве значения ключа "Affiliation" для этого конкретного человека.
1 ответ
Решение
Вы можете искать, используя регулярные выражения:
>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))
Они соответствуют Python re.match
а также re.search
где последний ищет событие, которое может начаться в любом месте строки.
В качестве альтернативы вы можете использовать пользовательское тестовое выражение, например, так:
>>> test_contains = lambda value, search: s.contains(search)
>>> db.search(User.name.test(test_contains, 'Columbia'))
Для получения дополнительной информации обратитесь к соответствующему разделу документации TinyDB.