Как удалить все смайлики из текста?

Как сделать так, чтобы если пользователь ввел данные со смайликом, то этот смайлик не сохранялся в Postgresql, а сохранялся только сам текст.

Вот мой код requests.py

@connection
async def save_description_to_db(session, data, user):
    new_user = Application(
        category=data['category_problems'],
        Description=data['text_problems'],
        data=data['data_problems'],
        time=data['time_problems'],
        conference=data['conference'],
        conference_data=data['conference_data'],
        conference_time=data['conference_time'],
        status=data["status"],
        name=user.name,
        surname=user.surname,
        patronymic=user.patronymic,
        department=user.department,
        office=user.office,
    )
    session.add(new_user)



    await session.commit()

Ответы (2 шт):

Автор решения: Amgarak

Можно через регулярку почистить текст от лишнего, примерно так:

import re

def remove_emoji(text):
    clean_text = " ".join(re.sub(r'[^\w\s.,!?—0-9-]+', '', text).split())
    return clean_text

user_text = "Привет! ? Как дела? ? Hey man?, your OK?? "
print(remove_emoji(user_text))

Вывод:

Привет! Как дела? Hey man, your OK?

[Program finished]

Дополнение. Немного погуглив, нашёл библиотеку для работы со смайлами - pip install emoji

import emoji

def remove_emoji(text):
    clean_text = emoji.replace_emoji(text, replace="")
    return " ".join(clean_text.split())

user_text = "Привет!*% ? Как дела?}¡¿ ? Hey man?, your OK?~@? "
print(remove_emoji(user_text))

Вывод:

Привет!*% Как дела?}¡¿ Hey man, your OK?~@

[Program finished]

Так символы :;‰’″ и тысячи других останутся довольны?

→ Ссылка
Автор решения: Artem Gafarov

Как уже сказано, можно использовать библиотеку emoji, а также библиотеку pip install ru-text-cleaner. История не особо обновляется, но работает неплохо, хотя рассчитана на более глубокую очистку текста. Документация здесь

Код примерно следующий:

from ru_text_cleaner import SimpleCleaner

text_cleaner = SimpleCleaner(
    spaces=False,
    punctuation=False,
    html=False,
    lower=False,
    stop_words=False,
    morpheme=False
)

string = "Привет! ? Как дела? ? Hey man?, your OK?? "

formated_text = text_cleaner.clean_text(string)

На сколько я понимаю, под капотом оно все равно в данном случае будет использовать emoji.

→ Ссылка