类型错误: 'GitHubIterator'对象不支持索引



使用github3.py,我想检索与pull请求相关联的注释列表中的最后一条注释,然后搜索字符串。我已经尝试了下面的代码,但我得到了错误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

我很确定您的代码的第一行没有达到您想要的效果。您正在尝试为一个不支持索引的对象(它是某种迭代器)建立索引(使用[-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,因为它指的是单个项)将在循环结束后保持绑定到迭代器的最后一个值。这就是您想要在上进行搜索的内容。

相关内容

  • 没有找到相关文章

最新更新