Python 空变量异常
我正在用一个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给你的响应是什么。只需打印出这个响应,然后调整你的条件判断,看看这个响应。
编辑:添加了评论中提到的有效答案