Python空变量异常

时间:2014-11-03 08:39:55

标签: python facebook facebook-graph-api notifications

所以我正在使用python脚本检查我的facebook上的新通知。当有未读通知时,脚本太完美了,但是当没有通知时,“except”子句会被执行,即使我之前输入了if else子句来尝试解决此问题。

代码:

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)

因此,每次没有新通知时,代码都会输入except子句,而这不是我需要的。 非常感谢任何帮助:D

1 个答案:

答案 0 :(得分:0)

如果没有新通知,Facebook API可能不会返回任何内容。您还在“摘要”中遇到了一个关键错误。这意味着Facebook没有使用密钥'摘要'返回内容。如果没有新的条件。

尝试:

if notifications['data']: 

或(因为这是你当前写的方式):

if not notifications['data']:

如果这些不起作用,请检查Facebook在没有新通知时给您的响应。只需打印该响应并调整if语句以检查该响应。

编辑:添加了评论中的答案