我正在为Reddit编写一个简单的CLI(使用PRAW),并希望用户能够从列表中选择一个帖子。问题是PRAW返回一个生成器对象,所以要获得一个索引项,我必须使用一些编码技巧,我发现here。不幸的是,代码给了我一个StopIteration
错误。
虽然它不是我使用的确切代码,但以下内容会产生相同的结果:
import praw
from itertools import islice
# Open a Reddit connection
r = praw.Reddit("Testing the PRAW API")
top_posts = r.get_front_page(limit=10)
# Print the article titles
i = 1
for post in top_posts:
print "[%d] %s" % (i, post.title)
print
i += 1
# Get input from the user
cmd = int(raw_input("Type in an article to view: "))
# Print the article title
print next(islice(top_posts, cmd - 1, cmd)).title
我很困惑,因为以下确实有效;错误似乎来自打印文章标题?:
import praw
from itertools import islice
# Open a Reddit connection
r = praw.Reddit("Testing the PRAW API")
top_posts = r.get_front_page(limit=10)
# Get input from the user
cmd = int(raw_input("Type in an article to view: "))
# Print the article title
print next(islice(top_posts, cmd - 1, cmd)).title
我不明白为什么打印这些文章会有什么影响?任何帮助将不胜感激!