Поскольку функция поиска является итератором, вы можете только go пройти через нее один раз. После того как ваш первый pprint(list(result))
итератор result
достиг конца запроса. С этого момента он больше не будет возвращать данные.
Вам потребуется сохранить первое преобразование списка в переменной, чтобы снова получить доступ к содержимому:
resultList = list(result)
pprint(resultList) # will use list that is now in memory
print(len(resultList)) # this will work
Если у вас есть очень большой набор результатов, это может привести к переполнению памяти или снижению производительности. Mon go может вернуть счет с помощью функции count () коллекции, в которую вы можете передать тот же объект запроса.