Python 空变量异常

0 投票
1 回答
903 浏览
提问于 2025-05-01 06:13

我正在用一个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

如果没有新的通知,Facebook的接口可能不会返回任何内容。你还遇到了一个关于'summary'的错误,这意味着如果没有新的条件,Facebook不会返回包含'summary'这个关键字的内容。

你可以试试:

if notifications['data']: 

或者(因为你现在是这样写的):

if not notifications['data']:

如果这些方法都不行,检查一下当没有新的通知时,Facebook给你的响应是什么。只需打印出这个响应,然后调整你的条件判断,看看这个响应。

编辑:添加了评论中提到的有效答案

撰写回答