Скрипт Python пропускает цикл - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь перебрать некоторые данные JSON, но информация находится на нескольких страницах.У меня нет проблем при работе с первой страницей, однако она пропустит следующий набор.Странно то, что он будет нормально работать в режиме отладки.Я предполагаю, что это проблема синхронизации при работе с загрузками json, но я попытался установить таймеры сна вокруг этого кода, и проблема не исчезла.

url = apipath + query + apikey
response = requests.get(url)
data = json.loads(response.text)

for x in data["results"]:
    nameList.append(x["name"])
    latList.append(x["geometry"]["location"]["lat"])
    lonList.append(x["geometry"]["location"]["lng"])

pagetoken = "pagetoken=" + data["next_page_token"]
url = apipath + pagetoken + apikey
response = requests.get(url)
data = json.loads(response.text)
for x in data["results"]:
    nameList.append(x["name"])
    latList.append(x["geometry"]["location"]["lat"])
    lonList.append(x["geometry"]["location"]["lng"])

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Ну, это в конечном итоге было проблемой времени.Я поместил 2-секундный таймер перед вторым запросом, и теперь он будет отлично загружать данные.Я думаю, что Python просто не мог идти в ногу.

0 голосов
/ 03 февраля 2019

Рискну предположить, что data["results"] соответствует значению None, и поэтому вызов for x in None: приведет к тому, что программа пропустит цикл for.Вы пытались поместить отпечаток выше для цикла?Возможно, попробуйте print(data["results"]), прежде чем идти в цикл, чтобы убедиться, что данные, которые вы хотите, существуют.Если это возвращает None, тогда, возможно, попробуйте просто print(data) и посмотрите, что читает программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...