Задать вопрос
@WiziDev

Ошибка: 'function' object has no attribute 'to_dict' Бот телеграма как решить ошибку?

При нажатие /start появляется ошибка, хотя в коде ничего не изменялось.

@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.from_user.id
    if message.text == '/start':
        save_user(user_id)
    is_subscribed = False
    curr_time = datetime.now()
    try:
        with open('data.json', 'r') as json_file:
            data = json.load(json_file)
            sub = data['users'][f"{user_id}"]['subscribe']
            sub_date = datetime.strptime(sub, '%Y-%m-%d %H:%M:%S.%f')
            if sub_date > curr_time:
                is_subscribed = True
    except:
        pass

    if is_subscribed:
        user_username = message.from_user.username
        with open('data.json', 'r') as json_file:
            data = json.load(json_file)
            user_id_str = str(user_id)
            data['users'][user_id_str]['username'] = user_username
        with open('data.json', 'w') as json_file:
            json.dump(data, json_file, indent=4)
        mode_send = data['users'][f'{user_id}']['mode']
        photo_path = 'net.png'
        markup = telebot.types.InlineKeyboardMarkup(row_width=1)

        btn_report = telebot.types.InlineKeyboardButton(callback_data='reportt', text=' Репортер')
        btn_account = telebot.types.InlineKeyboardButton(callback_data='account', text=' Профиль')
        btn_menu_mail = telebot.types.InlineKeyboardButton(callback_data='mailmenu', text=' Упр почтами')
        btn_add_mail = telebot.types.InlineKeyboardButton(callback_data='setupemail', text=' Добавить почту')
        btn_dell_mail = telebot.types.InlineKeyboardButton(callback_data='delete_all_mails', text=' Очистить почты')
        btn_list_mail = telebot.types.InlineKeyboardButton(callback_data='listmail', text=' Мои почты')
        btn_info = telebot.types.InlineKeyboardButton(callback_data='info', text=' Информация')

        markup.row(btn_report, btn_account)
        markup.add(btn_info)
        markup.row(btn_add_mail, btn_dell_mail)
        markup.add(btn_list_mail)

        with open(photo_path, 'rb') as photo:
            bot.send_photo(message.chat.id, photo,
                           caption=f'''`Добро пожаловать в бота EX SNOSER<\nПодписка активна до {str(data['users'][f"{user_id}"]['subscribe']).split('.')[0]}\nКол-во активных юзеров: {len(load_users())}\nМетод почт: {mode_send}`''',
                           reply_markup=markup, parse_mode="Markdown")
    else:

        markup = telebot.types.InlineKeyboardMarkup(row_width=1)
        buy_1 = telebot.types.InlineKeyboardButton(callback_data='ch_bot', text=' Премиум версия')
        buy_2 = telebot.types.InlineKeyboardButton(text=' Канал разработчика', url='https://t.me/exsquaad')
        buy_3 = telebot.types.InlineKeyboardButton(text=' Тех.поддержка', url='https://t.me/exsquaad')
        markup.row(buy_2, buy_1)
        markup.add(buy_3, promo)
        photo_path = 'net.png'
        with open(photo_path, 'rb') as photo:
            bot.send_photo(message.chat.id, photo,
                           caption=f" Привествую!\n EX SNOSER - это необычный бот телеграма с помощью которого можно наказать своего обидчика, удалить ему аккаунт.\n Цена премиум версии - От 1$ до 24$\n Канал с новостями: @exsquaad\n",
                           reply_markup=markup),


Ошибка -
Ошибка: 'function' object has no attribute 'to_dict'
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
+ import traceback
...
- print(f"Ошибка: {e}")
+ print(traceback.format_exc())
Ответ написан
@nozzy
Symfony, Laravel, SQL, Python, Telegram
promo - это что такое?
...
markup.add(buy_3, promo)
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы