Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Китайская компания JD.сom не оправдала квартальных прогнозов по выручке
❌ Китайская компания JD.сom не оправдала ожиданий рынка по квартальной выручке, что свидетельствует о том, что жесткая конкуренция и ослабление преимуществ от государственных субсидий снижают спрос на продукцию этого гиганта электронной коммерции.
➡️ Потребительский спрос в Китае в последние несколько лет пострадал из-за затянувшегося кризиса в секторе недвижимости, опасений по поводу занятости и геополитической напряженности, которые негативно влияют на рост второй по величине экономики мира.
⚠️ Это нанесло ущерб таким ритейлерам, как JD.сom — крупнейшему продавцу бытовой техники в Китае, — поскольку покупатели сократили расходы на товары не первой необходимости. Хотя JD.сom в течение нескольких кварталов получал выгоду от государственных субсидий, этот постепенный эффект уменьшается, поскольку сравнения с предыдущим годом становятся все сложнее.
➡️ Однако компания также делает ставку на другие категории товаров и новые источники дохода, такие как розничный бизнес и рекламное подразделение, чтобы увеличить продажи.
«Наша структура доходов становится все более диверсифицированной, и по мере роста прибыльности... и увеличения доли высокорентабельных направлений бизнеса, таких как реклама, мы уверены, что наши потоки прибыли также станут более диверсифицированными», — заявил финансовый директор JD.сom Иан Су Шань.
Источник: Reuters
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#JD
📞 Навигация по каналам
▪️Акции▪️Облигации
▪️Китай ▪️Трейдинг
▪️Новости▪️Клуб
Акции подразделения JD.сom упали в Гонконге после IPO на сумму 383 миллиона долларов
📉 Акции компании Jingdong Industrials Inc. упали в ходе дебюта на торгах в Гонконге после первичного публичного размещения акций на сумму 2,98 миллиарда гонконгских долларов.
📍 Компания продала 211,2 миллиона акций по цене 14,1 гонконгских долларов за штуку, и IPO привлекло международных инвесторов, ориентированных на долгосрочные инвестиции, хедж-фонды и специализированных инвесторов.
📌 Средства, полученные от IPO, будут использованы для укрепления потенциала компании в области производственной цепочки поставок, включая совершенствование технологий искусственного интеллекта, а также для поддержки расширения, инвестиций и приобретений.
Источник: Bloomberg
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#JD
📞 Навигация по каналам
▪️Акции▪️Облигации
▪️Китай ▪️Трейдинг
▪️Новости▪️Клуб
Подразделение технологий цепочки поставок JD.сom оценивает интерес к IPO в Гонконге
✅ Подразделение технологий цепочки поставок компании JD.сom Inc. начало оценивать интерес инвесторов к первичному публичному размещению акций в Гонконге, согласно условиям сделки, с которыми ознакомилось агентство Bloomberg News, что позволяет компании завершить более чем двухлетние попытки выйти на биржу.
🟢 Согласно условиям, компания Jingdong Industrials Inc. начала в понедельник, 24 ноября, так называемые встречи по информированию инвесторов. По словам источников, знакомых с ситуацией, компания может привлечь около 500 миллионов долларов в ближайшие недели. Компания впервые подала заявку на IPO в марте 2023 года, но получила одобрение китайского регулятора ценных бумаг только в сентябре.
📍Согласно последним документам о листинге, подразделение планирует использовать доходы от размещения акций для расширения возможностей своей промышленной цепочки поставок, включая совершенствование технологий искусственного интеллекта, а также для расширения и осуществления инвестиций и приобретений.
➡️ JD.сom пока не отреагировала на просьбу прокомментировать ситуацию.
➡️ Совместными спонсорами предложения выступают Bank of America Corp., Goldman Sachs Group Inc., Haitong International и UBS Group AG.
Источник: Bloomberg
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#JD
JD.сom сотрудничает с CATL и GAC для запуска «Национального хорошего автомобиля» 11 ноября
🛍 Вчера на прошедшем на JD.сom дне открытых дверей 11.11 компания JD.сom объявила о сотрудничестве с CATL и GAC Group с целью запуска «Национального хорошего автомобиля», официальная презентация и эксклюзивная продажа которого запланированы на торговый фестиваль 11.11.
🚗 JD.сom заявила, что полностью объединит сильные стороны партнеров в сфере производства транспортных средств, продаж аккумуляторов и услуг, внедряя инновации посредством моделей потребления, производства и кастомизации для улучшения показателей потребления автомобилей.
✅ Модель учитывает потребности пользователей в трёх ключевых областях: безопасности, эффективности зарядки, запасе хода и цене, стремясь к оптимальному балансу. Пользователи могут предварительно записаться на тест-драйв через приложение JD, выполнив поиск по запросу [National Good Car].
*️⃣ По данным Cailian Press, сайт JD.сom пояснил, что новый автомобиль является совместным проектом, при котором JD предоставляет информацию о пользователях и эксклюзивные продажи, не участвуя напрямую в производстве.
Источник: pandaily
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#JD
🇨🇳#Китай#JD
⚡️Акции компании JD COM всё ещё торгуются с дисконтом от максимума в 70%.
При этом, текущий размер EPS уже почти сопоставим с пиковым значением марта 2021 года.
За последний год доходность на акцию выросла почти на 85%, при этом оценка сохранилась скромной: компания стоит 8 прибылей и 30% от общей выручки 🤷♂️
❓ Давайте обсудим эту компанию и китайский рынок в целом - на бумаге это выглядит привлекательно, но может есть подводные камни? 🤔👇
#JD#Китай
📈Акции IT-гигантов Китая восстанавливаются, JDcom лидирует и прибавляет 10%
• Компания позитивно отчиталась за квартал на фоне жёсткого регулирования со стороны властей Китая.
Более того, компания заявила, что не ожидает каких-либо последствий для бизнеса от изменений в регулировании работы технологических компаний.
• Кэти Вуд присоединилась к другим фондам и прикупила китайских акций после обвала, в том числе JD.
• Акции Alibaba растут на 4.8%, бумаги Baidu — на 4.7%.
Тем не менее, китайским компаниям ещё предстоит долгий путь восстановления до показателей начала 2021 года.
🏪 Китайский гигант электронной коммерции JD.comоткрыл два роботизированных магазина в Нидерландах.
Ритейл-точки под брендом Ochama расположены в Лейдене и Роттердаме. Заказы в них собираются, сортируются и доставляются роботами. Пользователям необходимо выбрать товар через специальное приложение, а затем получить покупку с помощью штрих-кода.
🗺JD.com планирует открыть еще два таких маркета в Амстердаме и Утрехте.
#Нидерланды#JD