Форум сайта python.su
0
Всем.
В статическом варианте, по советам авторов статей в инете, для компоновки набора кнопок в окне ввода аргументы в markup.row передаются так:
markup.row('1','2','3')
buttons=() for k in bot_menu: buttons.append(k["id"]) ... markup.row(buttons)
AttributeError: ‘list’ object has no attribute ‘to_dic’
buttons={} index=1 for k in bot_menu: buttons[index]=k["id"] index+=1
Отредактировано a.j. (Июнь 1, 2017 20:17:46)
Офлайн
857
tup = ('1','2','3') markup.row(*tup)
Отредактировано py.user.next (Июнь 2, 2017 01:08:45)
Офлайн
0
Во-первых, я собираю массив с помощью append. Преобразую через tuple().
Аргумент вида *buttons дал ошибку ту же, только с другим типом: ‘int’ object has no attribute ‘to_dic’
Офлайн
568
a.j.Во-первых, если у вас есть глаза, то вы могли бы увидеть в трейсбэке ошибки строку, на которой ваша программа падает.
Во-первых
AttributeError: ‘list’ object has no attribute ‘to_dic’
buttons=() for k in bot_menu: buttons.append(k["id"])
Офлайн
0
Ошибка возникает здесь, цитирую лог:
File “….\telebot\types.py”, lines 702, in rowСкобки конечно были какие надо.
btn_array.append(button.to_dic())
buttons=[] for i in range(1,10): buttons.append(i) buttons=tuple(buttons) markup.row(buttons)
Офлайн
0
Правильный ответ в преобразовании подписи кнопки к строке (были цифры):
buttons=[] for k in bot_menu: buttons.append(str(k["id"])) markup.row(*buttons)
Отредактировано a.j. (Июнь 5, 2017 20:07:31)
Офлайн