我对python相当陌生。我有一个我需要了解的错误。Python - 了解错误:IndexError:列表索引超出范围
代码:
config.py:
# Vou definir os feeds
feeds_updates = [{"feedurl": "http://aaa1.com/rss/punch.rss", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa2.com/rss.xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa3.com/Heaven", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa4.com/feed.php", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa5.com/index.php?format=feed&type=rss", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa6.com/rss.xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa7.com/?format=xml", "linktoourpage": "http://www.ha.com/fun.htm"},
{"feedurl": "http://aaa8/site/component/rsssyndicator/?feed_id=1", "linktoourpage": "http://www.ha.com/fun.htm"}]
twitterC.py
# -*- coding: utf-8 -*-
import config # Ficheiro de configuracao
import twitter
import random
import sqlite3
import time
import bitly_api #https://github.com/bitly/bitly-api-python
import feedparser
...
# Vou escolher um feed ao acaso
feed_a_enviar = random.choice(config.feeds_updates)
# Vou apanhar o conteudo do feed
d = feedparser.parse(feed_a_enviar["feedurl"])
# Vou definir quantos feeds quero ter no i
i = range(8)
print i
# Vou meter para "updates" 10 entradas do feed
updates = []
for i in range(8):
updates.append([{"url": feed_a_enviar["linktoourpage"], "msg": d.entries[i].title + ", "}])
# Vou escolher ums entrada ao acaso
print updates # p debug so
update_to_send = random.choice(updates)
print update_to_send # Para efeitos de debug
而这有时会出现由于随机性质的错误:
Traceback (most recent call last):
File "C:\Users\anlopes\workspace\redes_sociais\src\twitterC.py", line 77, in <module>
updates.append([{"url": feed_a_enviar["linktoourpage"], "msg": d.entries[i].title + ", "}])
IndexError: list index out of range
I'am没有得到的错误,列表“feeds_updates”是一个包含8个元素的列表,我认为是很好的声明,RANDOM会从8个列表中选择一个...
有人可以给我一些线索,这里? PS:对不起,我的英语不好。
此致
您知道索引从零开始? 8个元素的索引为0到7? – 2011-04-01 10:09:27
@S。洛特:'范围(8)'是'[0,1,2,3,4,5,6,7]',所以这不是问题。 – 2011-04-01 10:50:25
@Tim Pietzcker:当然,我们都假设在'feed_updates'列表中实际提供的代码有8个项目,对吗?是的,证据是好的,但必须有一些事情没有在所提供的代码片段中显示。 – 2011-04-01 11:02:51