Python空变量异常

Python空变量异常,python,facebook,facebook-graph-api,notifications,Python,Facebook,Facebook Graph Api,Notifications,因此,我正在使用python脚本检查facebook上的新通知。当有未读的通知时,脚本会完美地运行,但是当没有通知时,“except”子句会被执行,即使我之前输入了if-else子句来尝试解决这个问题 代码: 因此,每次没有新通知时,代码都会输入except子句,这不是我需要的。 非常感谢您的帮助:如果没有新的通知,Facebook API可能不会返回任何内容。“summary”上还有一个关键错误,这意味着如果没有新的条件,Facebook不会返回带有“summary”键的内容 尝试: 或者(因

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

代码:

因此,每次没有新通知时,代码都会输入except子句,这不是我需要的。
非常感谢您的帮助:如果没有新的通知,Facebook API可能不会返回任何内容。“summary”上还有一个关键错误,这意味着如果没有新的条件,Facebook不会返回带有“summary”键的内容

尝试:

或者(因为这是您当前编写的方式):

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


编辑:添加了注释中的答案作为提示,我将删除try/except语句,以查看您在哪一行上实际遇到的错误。我怀疑第6行或第7行出现了KeyError。空的通知回复是否有“summary”键?@Rob我删除了它们并在第6行获得了KeyError:“summary”6@ReutSharabani我不熟悉这个facebook api,但我不知道还有什么其他方法可以检查是否没有通知只需调试或打印回复并查看它实际包含的内容。每次我尝试使用Facebook API时,它们都会过时,所以我建议你自己看看。确保在没有通知时返回的回复对象实际具有“摘要”。您也可以尝试:
如果通知中的'summary'我尝试了这两个语句,第一个语句(没有not)会使脚本跳过后面的任何内容,第二个语句不会影响脚本,它会继续输入except子句。我如何检查Facebook给我的响应?很抱歉,我是pythn的新手。好的,你能试着打印str(通知)并在这里发布吗?@AlexanderL92,如果通知
或如果没有通知,你可以简单地执行
。另外,当与
None
进行比较时,您应该使用
is
进行比较,因为
id(None)==id(None)
总是正确的。在这里阅读更多:@ReutSharabani啊,是的,我只是想到了列表固有的布尔值,并编辑了我的评论。但我不知道如果通知
,你可以只做
。您是否至少需要
notifactions['data']
来获取列表?感谢您提供有关
None
的提示。
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)
if notifications['data']: 
if not notifications['data']: