0

使用 github3.py,我想检索与拉取请求关联的评论列表中的最后一条评论,然后在其中搜索字符串。我已经尝试了下面的代码,但我得到了错误TypeError: 'GitHubIterator' object does not support indexing(没有索引,我可以检索评论列表)。

for comments in list(GitAuth.repo.issue(prs.number).comments()[-1]):
    if sign_off_regex_search_string.search(comments.body) and comments.user.login == githubID:
        sign_off_by_author_search_string_found = 'True'
        break
4

1 回答 1

1

我很确定你的代码的第一行没有做你想要的。您正在尝试索引(使用[-1])一个不支持索引的对象(它是某种迭代器)。您还围绕它进行了一个列表调用,并在该列表上运行了一个循环。我认为你不需要循环。尝试:

comments = list(GitAuth.repo.issue(prs.number).comments())[-1]

我已将list调用中的右括号移到索引之前。这意味着索引发生在列表上,而不是迭代器上。然而,它确实浪费了一点内存,因为在我们索引最后一个注释并将列表丢弃之前,所有注释都存储在一个列表中。如果内存使用是一个问题,你可以带回循环并摆脱list调用:

for comments in GitAuth.repo.issue(prs.number).comments():
    pass # the purpose of this loop is to get the last `comments` value

其余代码不应在此循环内。循环变量comments(可能应该是comment,因为它指的是单个项目)在循环结束后将保持绑定到迭代器的最后一个值。这就是您要搜索的内容。

于 2016-07-27T05:00:46.813 回答