Ошибка Python Feedparser: KeyError: 'title'

Я видел много ошибок KeyCount онлайн, но ни одна из них не соответствовала моим проблемам. Я использую анализатор каналов, чтобы попытаться создать одноразовое приложение, которое обращается ко всем 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 строки).

Если кто-то может помочь нам, пожалуйста, дайте мне знать, и если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать. Любая помощь приветствуется. Спасибо!

1 ответ

Решение

Трудно сказать, что именно здесь не так, но в общем случае любой KeyError потому что данные, к которым вы пытаетесь получить доступ, не совсем то, что вы ожидали. Лучше всего выбросить ваши предположения в окно и внимательно посмотреть на фактические данные, с которыми работает ваш код.

Для отладки я бы рекомендовал внимательно посмотреть, что происходит до появления ошибки. Какова стоимость line как вы читаете файл? Это правильно? Какова стоимость d? Звонил ли f.parse(line) привести к действительному объекту?

Другие вопросы по тегам