Курс 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. Обновление ключей в Python
  2. Дефолтные параметры в Python
  3. Добавление элемента к кортежу
  4. Генераторы и сеты в Python
  5. Блок try…finally в Python
  6. Замена элементов в списке с помощью генераторов списков
  7. Поиск индексов в списке
  8. Итераторы в Python
  9. Генерация ключей RSA
  10. Модуль functools в Python
  11. Конкатенация строк в Python
  12. Переопределение оператора % для объектов
  13. Цикл for в Python
  14. Отрицательные индексы списков в Python
  15. Порядок операций в Python
  16. Namedtuple в Python
  17. Метод get для словаря
  18. Использование функции enumerate()
  19. Динамические маршруты во Flask
  20. Отправка HTTP-запросов в Python
  21. Создание списков в Python
  22. Проверка наличия элемента в списке
  23. Concrete Paths — метод .with_suffix()
  24. Извлечение чисел из текста
  25. Установка пакета в Python
  26. Работа с кортежами
  27. Сериализация данных в JSON с помощью json.dumps
  28. Конкатенация строк с методом join()
  29. Получение текущей даты и времени
  30. Раздувающийся словарь в Python
  31. Абстракции словарей и множеств в Python
  32. Расширение информации об ошибке в Python
  33. Python и Юникод: работа с цифрами
  34. Измерение времени выполнения кода
  35. Описание скриптов в README
  36. Роль запятой в Python
  37. Декораторы в Python
  38. Работа с Requests для HTTP-запросов
  39. Создание функций высшего порядка
  40. Удаление falsy-значений из списка с помощью filter
  41. Отправка POST запроса на сервер.
  42. Список методов и атрибутов
  43. Вычисление фазы комплексного числа
  44. Объединение словарей в Python
  45. Сортировка и обратный порядок

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