Архив рубрики ~Лента новостей~

Прекратите писать запутанные цепочки if-else: разбор JSON с помощью match-case в Python.

Прекратите писать запутанные цепочки if-else: разбор JSON с помощью match-case в Python.

Повысьте эффективность своих скриптов для обработки данных, рассматривая структуры данных как шаблоны, а не просто словари.

Делиться

Изображение, демонстрирующее, как структурированное сопоставление с образцом может улучшить работу операторов if-else.

Введение

Если вы работаете в области анализа данных, инженерии данных или являетесь фронтенд/бэкенд-разработчиком, вы имеете дело с JSON. Для профессионалов это, по сути, только смерть, налоги и парсинг JSON, которые неизбежны. Проблема в том, что парсинг JSON часто представляет собой серьезную головную боль.

Независимо от того, получаете ли вы данные из REST API, анализируете логи или читаете конфигурационные файлы, в конечном итоге вы получаете вложенный словарь, который необходимо расшифровать. И давайте будем честны: код, который мы пишем для обработки этих словарей, зачастую… мягко говоря, некрасивый.

Все мы писали «спагетти-парсер». Вы знаете, о каком я говорю. Он начинается с простого оператора if, но затем нужно проверить, существует ли ключ. Затем нужно проверить, пуст ли список внутри этого ключа. И, наконец, нужно обработать ошибку.

Не успеешь оглянуться, как перед тобой вырастет 40-строчная башня из операторов if-elif-else, которую трудно читать и ещё труднее поддерживать. Конвейеры обработки данных в итоге сломаются из-за каких-нибудь непредвиденных обстоятельств. В общем, плохие предчувствия!

В Python 3.10, вышедшем несколько лет назад, была представлена функция, которую многие специалисты по анализу данных до сих пор не освоили: сопоставление структурных шаблонов с помощью операторов match и case. Её часто ошибочно принимают за простой оператор switch (как в C или Java), но она гораздо мощнее. Она позволяет проверять форму и структуру данных, а не только их значение.

В этой статье мы рассмотрим, как заменить ненадежные проверки словаря элегантными и читаемыми шаблонами, используя операторы match и case. Я сосредоточусь на конкретном примере использования, знакомом многим из нас, вместо того, чтобы пытаться дать исчерпывающий обзор того, как можно работать с match и case.

Источник: towardsdatascience.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ Поселил ИИ‑агента в чёлку макбука: он слушает мой день и… Архив рубрики ~Коротко из Telegram~ Немой парень впервые признался в любви СИЛОЙ МЫСЛИ — его………… Новости робототехники GM делает ставку на вычислительные технологии и искусственный интеллект, которые, по её мнению, помогут ей конкурировать с китайскими автопроизводителями. Архив рубрики ~Коротко из Telegram~ В легендарный Need for Speed: Underground 2 теперь можно поиграть… Архив рубрики ~Коротко из Telegram~ ИИ придумал пистолет, и его напечатали на 3D-принтере Однозарядный пистолет… Архив рубрики ~Коротко из Telegram~ В Швейцарии с помощью бактерий разработали печатный материал, похожий на бетон Архив рубрики ~Коротко из Telegram~ Модели искусственного интеллекта позволили России применять технологии для лучших крылатых… Архив рубрики ~Коротко из Telegram~ Преимущества использования искусственного интеллекта в медицине зависят от уровня подготовки… Архив рубрики ~Коротко из Telegram~ Почему синтаксис Nova выглядит так: 11 споров с Claude о… Архив рубрики ~Коротко из Telegram~ [Перевод] О сознании и интегрированной информации. Кристоф Кох (интервью) Сознанием… Архив рубрики ~Коротко из Telegram~ Больше половины отпечатков пальцев на терракотовых воинах оставили женщины и… Архив рубрики ~Коротко из Telegram~ В ИТМО учат роботов понимать пространство, а не просто видеть…… Архив рубрики ~Коротко из Telegram~ Теперь можно буквально заглянуть внутрь любого механизма. Claude Code научили…… Архив рубрики ~Коротко из Telegram~ PS5 снова взломали — хакер запустил меню разработчика на последней…… Архив рубрики ~Коротко из Telegram~ Поселил ИИ‑агента в чёлку макбука: он слушает мой день и… Архив рубрики ~Коротко из Telegram~ Немой парень впервые признался в любви СИЛОЙ МЫСЛИ — его………… Новости робототехники GM делает ставку на вычислительные технологии и искусственный интеллект, которые, по её мнению, помогут ей конкурировать с китайскими автопроизводителями. Архив рубрики ~Коротко из Telegram~ В легендарный Need for Speed: Underground 2 теперь можно поиграть… Архив рубрики ~Коротко из Telegram~ ИИ придумал пистолет, и его напечатали на 3D-принтере Однозарядный пистолет… Архив рубрики ~Коротко из Telegram~ В Швейцарии с помощью бактерий разработали печатный материал, похожий на бетон Архив рубрики ~Коротко из Telegram~ Модели искусственного интеллекта позволили России применять технологии для лучших крылатых… Архив рубрики ~Коротко из Telegram~ Преимущества использования искусственного интеллекта в медицине зависят от уровня подготовки… Архив рубрики ~Коротко из Telegram~ Почему синтаксис Nova выглядит так: 11 споров с Claude о… Архив рубрики ~Коротко из Telegram~ [Перевод] О сознании и интегрированной информации. Кристоф Кох (интервью) Сознанием… Архив рубрики ~Коротко из Telegram~ Больше половины отпечатков пальцев на терракотовых воинах оставили женщины и… Архив рубрики ~Коротко из Telegram~ В ИТМО учат роботов понимать пространство, а не просто видеть…… Архив рубрики ~Коротко из Telegram~ Теперь можно буквально заглянуть внутрь любого механизма. Claude Code научили…… Архив рубрики ~Коротко из Telegram~ PS5 снова взломали — хакер запустил меню разработчика на последней……