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