#python #python-2.7 #google-plus
#python #python-2.7 #google-plus
Вопрос:
Я пытаюсь сделать запрос из G API, чтобы заполнить список идентификаторов пользователей на основе текстового запроса post. Я использую цикл while для работы с возвращенным списком пользователей, и через некоторое время я получаю HTTPError 400. Я считаю, что это связано с тем, что свойство JSON nextPageToken не существует в самом низу стека возврата. Моя проблема (я думаю) заключается в том, что я перепробовал несколько стратегий завершения цикла, но, несмотря ни на что, цикл выполняется слишком много раз и выдает мне ошибку неправильного запроса. Что я должен искать, чтобы успешно завершить цикл? Я использовал очень похожую технику в другой точке своего кода, и она работала нормально, но по какой-то причине это не работает.
Мой код, который не работает:
request = activities_resource.search(
maxResults=20, orderBy='best', query= query_in)
while request is not None:
activities_document = request.execute(http=http)
request = activities_resource.list_next(request, activities_document)
Очень похожий код, который отлично работает:
request = activities_resource.list(userId= id, collection = 'public', maxResults = '100' )
while request is not None: #forms a loop until we hit the bottom of a users timeline
activities_document = request.execute(http=http)
request = activities_resource.list_next(request, activities_document) #creates next page token
Комментарии:
1. Две части кода могут быть похожи по внешнему виду, но на самом деле совершенно разные. Рабочий код проверяет
while request
, гдеrequest
находитсяactivities_resource.list_next(...)
— вы тестируетеactivities_document['nextPageToken']
, гдеactivities_dcoument
находитсяactivities_resource.search(...)
, Если у вас есть функциональный код, какую цель вы пытаетесь достичь?2. Первый фрагмент предназначен для создания списка идентификаторов пользователей на основе запроса, второй обрабатывает идентификаторы каждого из этих пользователей и захватывает всю их временную шкалу. Каждый цикл работает со списком, используя pageTokens. Я попытался изменить код, чтобы он функционировал точно так же, как второй бит, и он все равно выдал мне ту же ошибку.