2014-11-03 3 views
0

Так что я проверяю новые уведомления на своей facebook с помощью скрипта python. Скрипт прекрасно восходит, когда есть непрочитанные уведомления, но когда нет уведомлений, предложение «except» выполняется, хотя я уже ввел предложение if else, чтобы попытаться решить эту проблему.Исключение пустой переменной Python

Код:

while (True): 
    try: 
     graph = facebook.GraphAPI(access_token) 
     notifications = graph.get_object("me/notifications") 
     print "notifications" 
     if len(notifications['summary']) != 0: 
      unseen_notifications = notifications['summary']['unseen_count'] 
      if(int(unseen_notifications) > 0): 
       print("> You have " + str(unseen_notifications) + " unseen Facebook notifications!") 
       ser.write("1") 
       print "Wrote to Arduino :D" 
      else: 
       print "No New Notifications" 
       ser.write("0") 
    except: 
     print "Notifications are null!" 
     ser.write("0") 
    time.sleep(5) 

Таким образом, каждый раз, нет новых уведомлений код Вводит за исключением пункта, который не то, что мне нужно. Любая помощь очень ценится: D

+1

Как намек, я бы удалить попытку/за исключением заявления, чтобы увидеть, что ошибка, которую вы фактически получаете на какой линии. Я подозреваю, что KeyError в строке 6 или 7. – Rob

+0

имеет ли пустой ответ на уведомление «сводный» ключ? –

+0

@Rob Я удалил их и получил KeyError: «summary» в строке 6 – nick28

ответ

0

Если новых уведомлений нет, API Facebook, вероятно, не возвращает никакого контента. Вы также получили ключевую ошибку в «резюме», что означает, что Facebook не возвращает контент с ключевым «резюме», если нет новых условий.

Try:

if notifications['data']: 

или (потому что это так, как вы написали это в настоящее время):

if not notifications['data']: 

Если они не работают, проверьте, какой ответ Facebook не дает вам, когда есть нет новые уведомления. Просто распечатайте этот ответ и адаптируйте инструкцию if, чтобы проверить этот ответ.

EDIT: добавлен ответ, который работал с комментариями

+0

Я пробовал оба оператора, первый из них (без него) заставляет скрипт пропускать что-либо после него, а второй не влияет на его скрипт продолжает вводить условие except. – nick28

+0

как я могу проверить, какой ответ мне дает Facebook? извините за эти вопросы, но я новичок в pythn. – nick28

+0

хорошо, можете ли вы попробовать распечатать страницу (уведомления) и разместить ее здесь? – AlexanderL92

Смежные вопросы