Курс Python → Проверка типа данных

При работе с текстовыми документами в специализированной базе, где каждый документ представлен текстом и его вектором в многомерном пространстве, часто возникает необходимость использовать библиотеки для обработки и анализа данных. Одной из таких библиотек является langchain, которая используется для поиска близких по смыслу предложений.

Когда мы запрашиваем у langchain список близких по смыслу предложений и получаем список документов res в преобразованном виде, каждый элемент этого списка может быть представлен в виде кортежа. В таких случаях использование блока try-except с обработкой AttributeError может быть неэффективным, так как тип данных задан автором библиотеки и не всегда ясно, какую ошибку обрабатывать в блоке except.

Вместо использования try-except AttributeError в данной ситуации, целесообразнее предварительно проверить тип данных и структуру возвращаемого значения, чтобы избежать ненужных исключений. Например, можно проверить, содержит ли каждый элемент списка res кортеж, прежде чем обращаться к его элементам.


# Пример проверки типа данных возвращаемого значения
if isinstance(res, list):
    for item in res:
        if isinstance(item, tuple):
            # обработка данных в кортеже
        else:
            # обработка данных в другом формате
else:
    # обработка данных в другом формате

Таким образом, вместо использования try-except AttributeError в ситуациях, когда тип данных задан автором библиотеки, более предпочтительным подходом может быть предварительная проверка структуры данных и использование соответствующих методов и операторов для обработки данных.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Проектирование Singleton с метаклассом
  2. Python: Splat-оператор и splatty-splat
  3. Константы в модуле cmath
  4. Вывод баннеров
  5. Метод split() в Python
  6. Работа со списками
  7. Оптимизация памяти с __slots__
  8. Инвертирование словаря
  9. Выражения-генераторы в Python
  10. Тестирование времени с Freezegun
  11. Функция zip() в Python
  12. Структурирование именованных констант
  13. Печать в одной строке
  14. Отладка в Python
  15. Печать месячного календаря
  16. Сравнение строк в Python
  17. Оболочка Python
  18. Работа с CSV файлами
  19. Оптимизация интернирования строк
  20. globals и locals
  21. Определение локальных переменных в Python
  22. Изменение регистра данных
  23. Функции с дополнением
  24. Передача параметров в Python
  25. Слияние словарей в Python 3.9
  26. Перезагрузка оператора в Python
  27. Работа с срезами в Numpy
  28. Преобразование текста в речь с Python
  29. Подписка на SelectelNews в Twitter
  30. Декоратор защиты анонимных пользователей
  31. Оператор break в Python
  32. Обмен значений переменных в Python
  33. Автоматизация действий с Pyautogui
  34. Работа с GitHub в Telegram
  35. %pinfo: получение информации об объекте
  36. Progress с библиотекой tqdm
  37. Тестирование модели в PyTorch
  38. Определение имен функций
  39. Работа со временем в Python
  40. Необязательные аргументы в Python
  41. Именованные срезы в Python
  42. Создание виртуальной среды
  43. Декоратор Property в Python
  44. Форматирование данных с помощью pprint
  45. Декораторы в Python
  46. Оператор in для Python

Marketello читают маркетологи из крутых компаний