Python — это мощный инструмент (для дома для семьи) для автоматизации рутинных задач, особенно когда речь идет о работе с большими объемами данных. В этом посте я хочу рассказать задачку от владельца магазина на WB.
Питон - "это не только ценный мех, но и...."
При реализации проекта автоматизации по обновлению цен и остатков на маркет плейсе WB (вайлдберриз), я столкнулся с задачей: как связать базу данных артикулов продавца и поставщика, так как из общих полей было название продукта и совпадение было не полным, например: "НАД-5 STAR COSMETIC ЗУБН ПАСТ ОСНОВ НА ТРАВ С ЭКСТР НОНИ 25 гр-3 шт" и "5 STAR COSMETIC ЗУБНАЯ ПАСТА ОСНОВ НА ТРАВАХ С ЭКСТРАКТОМ НОНИ 25,0". В прайсе поставщика 30 тыс. артикулов, а у продавца 5.5 тыс. позиций и в ручную связывать артикулы это... И тут на сцену выходит Пайтон!
Представьте, что у вас есть два файла Excel: seller.xlsx и supplier.xlsx. В первом файле есть пустой столбец "Наименование поставщика", который необходимо заполнить значениями из столбца "Название" второго файла. Задача усложняется тем, что нужно найти максимально совпадающие значения по последовательности букв из столбца "Артикул продавца" в файле seller.xlsx. Поскольку позиций более 30 тысяч, важно максимально эффективно использовать оперативную память и многопоточность.
Бонусом, для менеджера магазина, стал файл эксель в котором можно использовать функцию ВПР, для автоматического проставления цен из прайса поставщика.
Код оптимизирован для выполнения несколькими потоками с помощью ProcessPoolExecutor, что позволяет параллельно обрабатывать строки и существенно снижает время выполнения задачи.