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

Резултати

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

Пребарај: #sab

当前筛选 #sab清除筛选
Ultimora.net - POLITICS

@Ultimorapolitics · Post #37424 · 24.04.2022 г., 17:07

#Elezioni#Slovenia Exit Poll di Mediana: #GS|Verdi: 35,8% #SDS|EPP: 22,5% #NSi|EPP: 6,8% #SD|S&D: 6,6% #L|LEFT: 4,4% #LMŠ|RE: 3,8% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,2% #SAB|RE: 2,9% #Resnica|No-vax sovranisti populisti: 2,6% #Pirati|G/EFA: 1,6% #DD|Anti-corruzione: 1,6% #Vesna|Verdi: 1,4% Soglia di sbarramento: 4% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37359 · 22.04.2022 г., 19:54

#Sondaggi#Slovenia Sondaggio di Mediana: #GS|Verdi: 26% (+1) #SDS|EPP: 24% (+1) #SD|S&D: 8% (-2) #NSi|EPP: 8% (+1) #L|LEFT: 8% (+1) #SAB|RE: 6% (+2) #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3% #Pirati|G/EFA: 3% #LMŠ|RE: 3% #Resnica|No-vax sovranisti populisti: 2% #ND|Centro ruralista: 1% #DeSUS|RE: 1% #Vesna|Verdi: 1% Data rilevazione: 19-21 aprile +/-: 4-7 aprile Intervistati: 1031 @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37522 · 24.04.2022 г., 21:14

#Elezioni#Slovenia 98,2% scrutinato: #GS|Verdi: 34,34% #SDS|EPP: 23,82% #NSi|EPP: 6,92% #SD|S&D: 6,64% #L|LEFT: 4,22% #LMŠ|RE: 3,71% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,46% #Resnica|No-vax sovranisti populisti: 2,89% #SAB|RE: 2,57% #ZD|Anti-sistema: 1,76% #DD|Anti-corruzione: 1,69% #Pirati|G/EFA: 1,61% #ND|Centro ruralista: 1,52% #SNS|AEMN: 1,52% #Vesna|Verdi: 1,32% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37518 · 24.04.2022 г., 20:28

#Elezioni#Slovenia 91,77% scrutinato: #GS|Verdi: 33,96% #SDS|EPP: 24,20% #NSi|EPP: 7,02% #SD|S&D: 6,59% #L|LEFT: 4,1% #LMŠ|RE: 3,73% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,46% #Resnica|No-vax sovranisti populisti: 2,89% #SAB|RE: 2,54% #ZD|Anti-sistema: 1,76% #DD|Anti-corruzione: 1,69% #Pirati|G/EFA: 1,62% #SNS|AEMN: 1,56% #ND|Centro ruralista: 1,55% #Vesna|Verdi: 1,3% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37516 · 24.04.2022 г., 20:11

#Elezioni#Slovenia 85,17% scrutinato: #GS|Verdi: 33,73% #SDS|EPP: 24,45% #NSi|EPP: 7,02% #SD|S&D: 6,64% #L|LEFT: 4,03% #LMŠ|RE: 3,73% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,44% #Resnica|No-vax sovranisti populisti: 2,89% #SAB|RE: 2,53% #ZD|Anti-sistema: 1,74% #DD|Anti-corruzione: 1,68% #Pirati|G/EFA: 1,61% #SNS|AEMN: 1,6% #ND|Centro ruralista: 1,59% #Vesna|Verdi: 1,29% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37507 · 24.04.2022 г., 19:54

#Elezioni#Slovenia 78,49% scrutinato: #GS|Verdi: 33,42% #SDS|EPP: 24,73% #NSi|EPP: 7,06% #SD|S&D: 6,65% #L|LEFT: 3,94% #LMŠ|RE: 3,69% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,5% #Resnica|No-vax sovranisti populisti: 2,89% #SAB|RE: 2,5% #ZD|Anti-sistema: 1,74% #DD|Anti-corruzione: 1,69% #ND|Centro ruralista: 1,65% #SNS|AEMN: 1,63% #Pirati|G/EFA: 1,59% #Vesna|Verdi: 1,27% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37493 · 24.04.2022 г., 19:36

#Elezioni#Slovenia 66,03% scrutinato: #GS|Verdi: 33,24% #SDS|EPP: 24,9% #NSi|EPP: 7,11% #SD|S&D: 6,66% #L|LEFT: 3,9% #LMŠ|RE: 3,67% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,48% #Resnica|No-vax sovranisti populisti: 2,9% #SAB|RE: 2,46% #ND|Centro ruralista: 1,72% #ZD|Anti-sistema: 1,72% #DD|Anti-corruzione: 1,7% #SNS|AEMN: 1,65% #Pirati|G/EFA: 1,59% #Vesna|Verdi: 1,26% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37487 · 24.04.2022 г., 19:20

#Elezioni#Slovenia 53,11% scrutinato: #GS|Verdi: 32,87% #SDS|EPP: 25,12% #NSi|EPP: 7,21% #SD|S&D: 6,67% #L|LEFT: 3,84% #LMŠ|RE: 3,67% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,5% #Resnica|No-vax sovranisti populisti: 2,97% #SAB|RE: 2,42% #ND|Centro ruralista: 1,76% #ZD|Anti-sistema: 1,74% #DD|Anti-corruzione: 1,69% #SNS|AEMN: 1,67% #Pirati|G/EFA: 1,58% #Vesna|Verdi: 1,26% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37483 · 24.04.2022 г., 19:03

#Elezioni#Slovenia 39,6% scrutinato: #GS|Verdi: 32,31% #SDS|EPP: 25,63% #NSi|EPP: 7,24% #SD|S&D: 6,7% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,8% #L|LEFT: 3,68% #LMŠ|RE: 3,65% #Resnica|No-vax sovranisti populisti: 3% #SAB|RE: 2,34% #ND|Centro ruralista: 1,8% #SNS|AEMN: 1,73% #ZD|Anti-sistema: 1,71% #DD|Anti-corruzione: 1,64% #Pirati|G/EFA: 1,57% #Vesna|Verdi: 1,21% @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37479 · 24.04.2022 г., 18:48

#Elezioni#Slovenia 25,56% scrutinato: #GS|Verdi: 31,53% #SDS|EPP: 26,42% #NSi|EPP: 7,31% #SD|S&D: 6,77% #PoS (#Konkretno-#SLS-#AČZS-#NLS-#KSS)|EPP|Verdi di centro-destra|Centro-sinistra|Centro: 3,85% #L|LEFT: 3,6% #LMŠ|RE: 3,44% #Resnica|No-vax sovranisti populisti: 2,97% #SAB|RE: 2,25% #ND|Centro ruralista: 1,9% #SNS|AEMN: 1,78% #ZD|Anti-sistema: 1,77% #DD|Anti-corruzione: 1,62% #Pirati|G/EFA: 1,51% #Vesna|Verdi: 1,22% @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39837 · 03.06.2022 г., 15:45

#Slovenia Il Primo Ministro Robert #Golob (#GS|Verdi) ha presentato il suo Governo. Di seguito la lista dei Ministri: -Primo Ministro: Robert Golob (GS); -Vice Primo Ministro e Ministro della Salute: Danijel Bešič #Loredan (GS); -Vice Primo Ministro e Ministra degli Affari Esteri ed Europei: Tanja #Fajon (#SD|S&D); -Vice Primo Ministro e Ministro del Futuro Solidale: Luka #Mesec (#L|LEFT); -Ministra delle Politiche Agricole, Forestali e Alimentari: Irena #Shinko (GS); -Ministra dell'Istruzione: Amalia #Žakelj (GS); -Ministro delle Finanze: Klemen #Boštjančič (GS) -Ministro dell'Istruzione Superiore, della Scienza e dell'Innovazione: Igor #Papič (GS); -Ministro delle risorse naturali e della pianificazione del territorio: Uroš #Brežan (GS); -Ministra della Pubblica Amministrazione: Sanja Ajanovic #Hovnik (GS); -Ministro dell'ambiente, del clima e dell'energia: Bojan #Kumer (GS); -Ministra dell'Interno: Tatjana #Bobnar (GS); -Ministro della Difesa: Marjan #Šarec (#LMŠ|RE); -Ministro delle Infrastrutture: Alenka #Bratušek (#SAB|RE); -Ministro dell'Economia, del Turismo e dello Sport: Matjaž #Han (SD); -Ministra della Giustizia: Dominika Švarc #Pipan (SD); -Ministro dello Sviluppo Regionale e della Coesione: Aleksander #Jevšek (SD); -Ministra della Cultura: Asta #Vrečko (L); -Ministro del Lavoro, della Famiglia, degli Affari Sociali e delle Pari Opportunità: Simon #Maljevac -Ministro per gli sloveni all'estero: Matej #Arčon (GS); -Ministra per le Trasformazione Digitale: Emilia Duh #Stojmenova (GS); -Ministro per lo sviluppo e la politica di coesione europea: Aleksander #Jevšek. @UltimoraPolitics24