Проблема с выводом значения в виде `(3,)` возникает из-за того, что метод `fetchall()` возвращает список кортежей. Каждый кортеж содержит значения, извлеченные из базы данных. В вашем случае, так как вы выбираете только одно значение (колонку `dollars`), результат будет содержать один кортеж с одним элементом.
Чтобы получить только число без лишних скобок и запятой, вы можете получить первый элемент из кортежа. Вот как можно модифицировать ваш код:
```python
cursor.execute("SELECT dollars FROM users WHERE id=?", (message.from_user.id,))
der = cursor.fetchone() # Используем fetchone для получения единственного результата
if der is not None: # Проверяем, не пустой ли результат
der_str = str(der[0]) # Получаем первый элемент кортежа
else:
der_str = "0" # Если пользователя нет, устанавливаем баланс в 0
conn.commit()
await message.answer(f"Ваш айди: {message.chat.id}\nБаланс: {der_str}")
```
### Объяснение изменений:
1. **Использование `fetchone()`**: Этот метод возвращает единственный результат в виде кортежа или `None`, если ничего не найдено. Это проще, если вы ожидаете только одно значение.
2. **Доступ к элементу кортежа**: `der[0]` позволяет получить значение из кортежа.
3. **Проверка на `None`**: Чтобы избежать ошибок, если пользователь с таким ID не найден в базе данных.
Таким образом, при выполнении запроса вы получите значение без лишних скобок и запятой.