我在网上看到了很多KeyCount错误,但没有一个与我遇到的麻烦完全匹配。我正在使用feed解析器来尝试创建一个运行应用程序,该应用程序访问文本文件中的所有URL并输出每个URL中的所有条目。当我运行此代码时:
import feedparser as f
with open('addresses.rtf', 'r') as addresses:
for line in addresses:
d = f.parse(line)
print d["feed"]["title"]
print ""
print d.feed.subtitle
print ""
for post in d.entries:
print post.title
print post.link
print ""
我收到此错误消息:
Traceback (most recent call last):
File "/Users/Josh/Desktop/Feed Parser Python Project/init.py", line 7, in <module>
print d["feed"]["title"]
File "build/bdist.macosx-10.6-intel/egg/feedparser.py", line 375, in __getitem__
return dict.__getitem__(self, key)
KeyError: 'title'
我的文本文件只是一个.rtf文件,每行有一个URL(3行)。
如果有人可以帮我们,请告诉我,如果您需要任何额外信息,请不要犹豫。欢迎任何帮助。谢谢!
答案 0 :(得分:2)
这里很难确切地说出错误,但在一般情况下,任何KeyError
都是因为您尝试访问的数据并不完全符合您的预期。最好将您的假设抛到窗外,仔细查看代码正在使用的实际数据。
为了进行调试,我建议您仔细查看错误发生之前的情况。阅读文件时line
的值是多少?这是对的吗? d
的价值是多少?调用f.parse(line)
是否导致有效对象?