TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 45 слични објави

Пребарај: #rual

当前筛选 #rual清除筛选
Дивиденды Forever

@divforever · Post #29645 · 18.03.2026 г., 09:50

Русал впервые с 2014 года понес убытки из-за сильного рубля — Bloomberg #RUAL Читать далее 👉https://smartlab.news/i/182856 мы в max

Hashtags

Дивиденды Forever

@divforever · Post #29572 · 12.03.2026 г., 13:46

📈Цена на алюминий в Лондоне достигла самого высокого уровня почти за 4 года - $3546,50 за тонну #RUAL Читать далее 👉https://smartlab.news/i/181956 мы в max

Hashtags

Дивиденды Forever

@divforever · Post #29524 · 09.03.2026 г., 06:36

📈Цены на алюминий превысили отметку в $3400 за тонну #RUAL Читать далее 👉https://smartlab.news/i/180527 мы в max

Hashtags

Era Media

@analyticsusarussiamarkets · Post #16768 · 30.03.2026 г., 16:26

Интерфакс: Русал готовит новые предложения по ценам на алюминий для рынка РФ Русал после предупреждения ФАС готовит пакет предложений по ценообразованию на внутреннем рынке. Компания заявила, что обсуждает этот вопрос с регулятором и российскими потребителями алюминия. ФАС потребовала до 30 апреля убрать из договоров условия, из-за которых цены для российских покупателей оказывались выше экспортных. #RUAL Сайт | Бот | Invest Era

Hashtags

Отчеты компаний

@reportscompanies · Post #9396 · 01.05.2026 г., 07:25

Русал РСБУ 1 кв. 2026 г.: ✔️ выручка отсутствует 📉 чистая прибыль ₽0,38 млрд (против прибыли ₽189 млрд годом ранее) #RUAL Читать далее 👉https://smartlab.news/i/188322 мы в max

Hashtags

Отчеты компаний

@reportscompanies · Post #9016 · 18.03.2026 г., 07:04

🇷🇺#RUAL = -12% на торгах в Гонконге ЧИСТЫЙ УБЫТОК "РУСАЛА" ПО МФСО В 2025 Г. СОСТАВИЛ $787 МЛН ПРОТИВ ПРИБЫЛИ В $983 МЛН ГОДОМ РАНЕЕ СКОРРЕКТИРОВАННАЯ EBITDA "РУСАЛА" ПО МСФО В 2025 Г. СНИЗИЛАСЬ ДО $1,053 МЛРД ПРОТИВ $1,494 МЛН ГОДОМ РАНЕЕ операционные результаты - отчет mt в max

Hashtags

Отчеты компаний

@reportscompanies · Post #9014 · 18.03.2026 г., 06:49

🖨 Русал МСФО за 2025 год: Чистый убыток $455 млн против прибыли в $803 млн годом ранее 📈 Выручка $14,81 млрд (+22,6% г/г) 📉 Производство алюминия 3,9 млн тонн (-1,9% г/г) #RUAL Читать далее 👉https://smartlab.news/i/182806 мы в max

Hashtags

Отчеты компаний

@reportscompanies · Post #9002 · 16.03.2026 г., 15:33

РУСАЛ РСБУ 2025 г.: 📈 выручка ₽164,04 млрд (рост в 5,1 раза г/г) 📉 чистый убыток ₽5,7 млрд (против прибыли ₽43,6 млрд годом ранее) #RUAL Читать далее 👉https://smartlab.news/i/182634 мы в max

Hashtags

Приватка Казакова

@privatka_kazakova · Post #4411 · 09.03.2026 г., 14:07

#rual Котировки на прошлой сессии закрепились выше красного уровня, сегодня открывшись гэпом вверх пошла фиксация,как итог - тестируем сверху красный уровень и текущие отметки подходят для лонга 44.37. Стоп - 42.6 Цель - 46.2 Не иир

Hashtags

Приватка Казакова

@privatka_kazakova · Post #4210 · 26.01.2026 г., 13:36

💿#rual Глыба!!!☄️☄️☄️ Пока рынок сегодня в коррекции, акции Русала продолжают рост. За 2 месяца рост 50%. 🔼Закрепились над верхом канала (38) поэтому цена будет магнитить к горизонтальному сопротивлению 43.9 А закрепление над 43.9 уведёт акции основной моей цели 60-70, где я продам долгосрочную позицию. ☝️Лонговать стоит от верха канала 38 Не иир

Hashtags

ПретходнаСтраница 1 од 4Следна