0

几天前我刚刚开始使用 Python,现在我正在尝试使用 Python 为 Arduino 制作 Gmail 通知程序。我收到以下错误。我已经正确输入了我的用户名和 ID,我什至尝试输入谷歌给出的应用程序指定代码,但我仍然收到此错误。

import serial, sys, feedparser,time
#Settings - Change these to match your account details
USERNAME="XXXX"
PASSWORD="XXXXXXX"
PROTO="https://"
SERVER="mail.google.com"
PATH="/gmail/feed/atom/important"
try:
  ser = serial.Serial("COM3", 9600)
except serial.SerialException:
      print ("no device connected exiting")
      sys.exit()
newmails = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH)["feed"]["fullcount"])
# Output data to serial port
if newmails > 0:
  ser.write("m")
  print("some mail")
else:
  ser.write("n")
  print("no mail")
#print data to terminal
# Close serial port
ser.close()

错误如下:- C:\Python33>python mailarduino.py Traceback(最近一次调用最后):文件“mailarduino.py”,第 13 行,在 newmails = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SE RVER + PATH)["feed"]["fullcount"]) 文件 "C:\Python33\lib\site-packages\feedparser-5.1-py3.3.egg\feedparser.py", l ine 346,在getitem返回字典中。getitem (self, key) KeyError: 'fullcount'

C:\Python33>

4

1 回答 1

0

您正在复制的教程已有 5 年历史。API,即您可以调用的函数以及它们返回的内容,会随着时间而改变。我建议打印出来:

feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH)

看看会产生什么。一旦你看到你所拥有的,那么你就可以弄清楚如何提取你想要的信息。

于 2013-06-08T14:41:39.423 回答