Как отключить автоматическую вставку символов "{}" в сообщениях бота в Telegram?

Как исправить форматирование номера заказа, чтобы он отображался без фигурных скобок и кавычек? 

Ниже приведен мой код, который вызывает проблему:

```python
def send_message_with_manager_link(chat_id, number_order):
    # Генерируем текст сообщения с номером заказа и ссылкой на МЕНЕДЖЕРА
    message = f"Ваш заказ {number_order} был успешно отправлен менеджеру! Напишите  https://t.me/Ztac37 менеджеру (тут специально сломал чтобы браузер не делал href) код заказа чтобы договориться о сделке".replace("{'}","")

    # Отправляем сообщение с HTML-разметкой
    data = {'chat_id': chat_id, 'text': message, 'parse_mode': 'HTML'}
    requests.post(f'{URL}{TOKEN}/sendMessage', data=data)

def number_order():
    try:
        with open(ORDER_COUNT_FILE, 'r') as file:
            order_count = int(file.read())
    except FileNotFoundError:
        order_count = 1

    number_order = '{:04}'.format(order_count) # Форматируем номер заказа, чтобы он всегда содержал 4 цифр (например, 0001)

    with open(ORDER_COUNT_FILE, 'w') as file:
        file.write(str(order_count + 1))  # Увеличиваем номер заказа на 1

    return number_order
```

Где и как я могу исправить этот код, чтобы число заказа выводилось без фигурных скобок и кавычек?
  • 17 сентября 2023 г. 10:37
Ответы на вопрос 3
Чтобы отключить автоматическую вставку символов "{}" в сообщениях бота в Telegram, вам нужно изменить способ форматирования строки в функции `send_message_with_manager_link()`. Вместо использования `f"..."`, вы можете использовать метод `.format()` и передать `number_order` в качестве аргумента вместо вставки его непосредственно в строку. 

```python
def send_message_with_manager_link(chat_id, number_order):
    # Генерируем текст сообщения с номером заказа и ссылкой на МЕНЕДЖЕРА
    message = "Ваш заказ {} был успешно отправлен менеджеру! Напишите https://t.me/Ztac37 менеджеру (тут специально сломал чтобы браузер не делал href) код заказа чтобы договориться о сделке".format(number_order)

    # Отправляем сообщение с HTML-разметкой
    data = {'chat_id': chat_id, 'text': message, 'parse_mode': 'HTML'}
    requests.post(f'{URL}{TOKEN}/sendMessage', data=data)
```

Чтобы исправить форматирование номера заказа, чтобы он отображался без фигурных скобок и кавычек, вам необходимо изменить строку `number_order = '{:04}'.format(order_count)` в функции `number_order()`. Замените эту строку на `number_order = "{:04d}".format(order_count)`.

```python
def number_order():
    try:
        with open(ORDER_COUNT_FILE, 'r') as file:
            order_count = int(file.read())
    except FileNotFoundError:
        order_count = 1

    number_order = "{:04d}".format(order_count) # Форматируем номер заказа, чтобы он всегда содержал 4 цифр (например, 0001)

    with open(ORDER_COUNT_FILE, 'w') as file:
        file.write(str(order_count + 1))  # Увеличиваем номер заказа на 1

    return number_order
```

Теперь `number_order` будет содержать форматированное число заказа без фигурных скобок и кавычек.
https://t.me/Ztac37 
 Код заказа для связи с менеджером: 0001.
Похожие вопросы