Курс 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. Работа с модулем glob в Python
  3. Python 3.12: переиспользование кавычек
  4. Работа со стеком в Python
  5. Таймер обратного отсчета
  6. Изменение элемента списка
  7. Метод rsub в Python: расширение функциональности вычитания
  8. Python union() функция — объединение множеств
  9. Поиск подстроки в строке
  10. Утечки переменных цикла в Python 3.x
  11. Вложенные циклы в Python
  12. Библиотека Emoji: использование смайлов в Python
  13. Модуль sys: основы
  14. Создание объекта timedelta
  15. GitHub в Telegram: подписка на уведомления
  16. Замена подстроки
  17. Основные функции и модули Python
  18. Сглаживание списка
  19. Обратное распространение ошибки
  20. Анонимные функции Lambda
  21. Преобразование символов в нижний регистр
  22. Создание списков в Python
  23. Конвертация текстовых чисел с помощью Numerizer
  24. Применение функции к списку
  25. Удаление файлов и папок в Python
  26. Расширение информации об ошибке в Python
  27. Создание пустых функций и классов в Python
  28. Получение текущего времени в Python
  29. Работа с комплексными числами
  30. Реализация метода __abs__ в Python
  31. Удаление дубликатов из списка с помощью dict.fromkeys
  32. Генераторы в Python
  33. Описание скриптов в README
  34. Работа с исключениями в Python
  35. Методы list в Python
  36. Асинхронное программирование с asyncio
  37. Python itertools combinations() — группировка элементов
  38. Метод setitem в Python
  39. Отделение звука от видео
  40. Именованные срезы в Python
  41. Оптимизация интернирования строк
  42. Замена текста с re.sub()
  43. Установка и загрузка Instaloader
  44. Поиск HTML-элементов с BeautifulSoup
  45. Установка и использование Python-dateutil
  46. Многострочные комментарии в Python

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