TypeError:'GitHubIterator'对象不支持索引

时间:2016-07-27 03:55:39

标签: python indexing github3.py

使用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 个答案:

答案 0 :(得分:1)

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

[-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,因为它引用单个项)将在循环结束后保持绑定到迭代器的最后一个值。这就是你想要搜索的内容。