В 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.

Другие вопросы по тегам