Задать вопрос
Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (21)

Лучшие ответы пользователя

Все ответы (43)
  • Зачем нужен Dispather в Aiogram?

    Не стоит на столько углубляться на данном этапе изучения библиотеки.
    Если коротко Dispatcher принимает все апдейты и обрабатывает их.
    Можете отправлять сообщения как вам удобно, хоть await mybot.bot.send_sticker хоть await bot.send_sticker лишь бы импортировали все правильно
    Ответ написан
    Комментировать
  • В чем ошибка в этой строке кода?

    @client.command(aliases = ['blance', 'cash'])
    bAlance
    Ответ написан
    Комментировать
  • Как с помощью библиотеки aiogram сделать так, чтобы бот отправлял сообщение по вашему id?

    метод answer не принимает параметр chat_id
    используйте
    await mybot.bot.send_message(chat_id = 123, text=message.text)

    если передавать параметры по порядку, не обязательно указывать именованные параметры, вы можете сделать так:
    await mybot.bot.send_message(627976213, message.text)
    Ответ написан
    3 комментария
  • Как остановить цикл при вводе последующей команы AIOGRAM (Python)?

    Не надо использовать цикл while в асинхронном коде, да и в целом если бот рассчитан на более чем одного пользователя
    Используйте storage
    from aiogram.contrib.fsm_storage.memory import MemoryStorage
    
    storage = MemoryStorage()

    from aiogram.dispatcher import FSMContext
    
    @dp.message_handler(commands=['start'])
    async def start(message: types.Message,  state=FSMContext):
        await message.answer('Вы ввели команду /start, введите команду /stop или /cancel чтобы выйти из меню')
        await state.set_state(YourState.name_state)
    
    @dp.message_handler(commands=['stop'], state=YourState.name_state)
    async def stop(message: types.Message,  state=FSMContext):
        await message.answer('Вы ввели команду /stop')
        await state.finish()
    
    @dp.message_handler(commands=['cancel'], state='*')
    async def cancel(message: types.Message,  state=FSMContext):
        current_state = await state.get_state()
        if current_state is None:
            return
        await state.finish()
        await message.answer('Вы ввели команду /cancel')
    Ответ написан
    Комментировать
  • Как преобразовать такой список словарей в Python?

    Умножив d_list на 100.000 у меня выполнилось за 0.6868....
    Не знаю на сколько "быстрым" такой результат можно назвать
    Первый вариант
    res = []
    for dictionary in d_list:  # * 100_000:
        result_dict = {}
        for key in dictionary:
            if dictionary[key] is not None:
                result_dict[key] = dictionary[key]
        result_dict = {**result_dict, **{'qty1': False, 'fp1': False,
                                         'qty2': False, 'fp2': False,
                                         'qty3': False, 'fp3': False}}
        if isinstance(dictionary['b'], list):
            for z in range(1, len(dictionary['b']) - 1):
                result_dict[f'qty{z}'] = dictionary['b'][z - 1]['qty']
                result_dict[f'fp{z}'] = dictionary['b'][z - 1]['fp']
    
        res.append(result_dict)

    Если все таки вы не ожидаете в результате значение ключа b в исходном виде.
    Выполнилось за 0.3226
    UPD
    res = []
    for dictionary in d_list:  # * 100_000:
        result_dict = {'a': dictionary['a'],
                       'c': dictionary['c'],
                       'qty1': False, 'fp1': False,
                       'qty2': False, 'fp2': False,
                       'qty3': False, 'fp3': False
                       }
        if isinstance(dictionary['b'], list):
            for z in range(1, len(dictionary['b']) - 1):
                result_dict[f'qty{z}'] = dictionary['b'][z - 1]['qty']
                result_dict[f'fp{z}'] = dictionary['b'][z - 1]['fp']
    
        res.append(result_dict)
    Ответ написан
    1 комментарий