избежать получения ошибки, если в параметрах обновления нет .caption (или user.id или .....) (аргумент типа 'NoneType' не повторяется) - PullRequest
0 голосов
/ 29 сентября 2018

Я использую python-telegram-bot для создания бота.Я хочу проверить заголовок фотографии, которую получил мой бот, которую я использую

dispatcher.add_handler(MessageHandler(Filters.photo,image)

Я проверяю заголовок

if update.message.caption == 'something ':
    do something

, когда фотография имеет код подписи, работает нормально, проблема в том, когда фотографияУ меня нет подписи. Я получаю эту ошибку

TypeError: argument of type 'NoneType' is not iterable

, в основном она не может найти update.message.caption в параметрах.Если фотография имеет подпись, в обновлении есть .caption Параметр, но когда пользователь отправляет фотографию без подписи, в обновлении нет .caption Параметры

, как можно избежать этой ошибки?или как я могу проверить, есть ли параметр «заголовок» в обновлении или нет?

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Это решено, и вот как я это делаю

  if hasattr(update.message,'caption'):
     print('yes there is ') 
  else:
     print('there is no caption')

Надеюсь, это поможет вам

0 голосов
/ 29 сентября 2018

Я не совсем уверен в том, что вы пытаетесь сделать здесь, однако в этом случае я бы попытался отловить исключение, если нет заголовка, что-то вроде этого;

try:    
    caption = update.message.caption
    #do something with caption
except:
    #Do something else in case no caption is there
...