【问题标题】:I'm getting an List index out of range error for an index that exist对于存在的索引,我收到列表索引超出范围错误
【发布时间】:2016-10-10 21:29:35
【问题描述】:

我正在使用提要解析器来获取 rss 对象。当我跑步时

live_leak.links

我明白了

[{'type': 'text/html', 'rel': 'alternate', 'href': 
'http://www.liveleak.com/view?i=abf_1476121939'}, 

{'type': 'application/x-shockwave-flash', 'rel': 'enclosure', 'href':
 'http://www.liveleak.com/e/abf_1476121939'}]

但是当我尝试这个时

live_leak.links[1]

我的列表索引超出范围,请注意,这在早些时候工作,然后突然这不起作用。我的代码中有这个,我花了几个小时才找到,因为我没有意识到这是行不通的。如果没有人知道我会做一个字符串替换作为一种技巧,但我宁愿做已经在工作的事情。

这也有效

live_leak[0]

返回

[{'type': 'text/html', 'rel': 'alternate', 'href': 
'http://www.liveleak.com/view?i=abf_1476121939'}]

这很奇怪,因为另一个不起作用

编辑

def pan_task():
        url = 'http://www.liveleak.com/rss?featured=1'
        name = 'live leak'
        live_leaks = [i for i in feedparser.parse(url).entries]
        the_count = len(live_leaks)
        ky = feedparser.parse(url).keys()
        oky = [i.keys() for i in feedparser.parse(url).entries][:12] # shows what I can pull

        try:
            live_entries = [{
                             'html': live_leak.links,
                             'href': live_leak.links[0]['href'],
                             'src': live_leak.media_thumbnail[0]['url'],
                             'text': live_leak.title,
                             'comments': live_leak.description,
                             'url': live_leak.links[0]['href'],
                             'embed': live_leak.links[1]['href'],
                             'text': live_leak.title,
                             'comments': live_leak.description,
                             'name': name,
                             'url': live_leak.link, # this is the link to the source
                             'author': None,
                             'video': False
                             } for live_leak in live_leaks]
        except IndexError:
            print('error check logs')
            live_entries = []

        # for count, elem in enumerate(live_entries):
        #     the_html = requests.get(live_entries[count]['url']) # a specific text
     
        return print(live_entries[0])

【问题讨论】:

  • 如果索引超出范围,则该元素不存在。
  • 重新编辑:print() 返回None

标签: python rss feedparser


【解决方案1】:

您可以索引 live_leak,但 live_leak.links 似乎是返回 live_leak 元素的其他类型的构造。试试 live_leak[1],也许?

【讨论】:

    【解决方案2】:

    一个正在寻找 live_leak 下的链接,另一个只是查看 live_leak 本身。

    例如: live_leak[1]

    应该返回: [{'type': 'application/x-shockwave-flash', 'rel': 'enclosure', 'href': 'http://www.liveleak.com/e/abf_1476121939'}]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多