Проблема итерации в запросе - PullRequest
0 голосов
/ 27 августа 2018

Я выполняю пакетные запросы к службе REST на основе переменных minCount и maxCount. Поскольку он повторяется в каждом цикле, идея состоит в том, чтобы сначала установить minCount = 1 и maxCount = 1000, а затем сделать minCount = minCount + maxCount и maxCount = maxCount + 1000. Это работает нормально, пока я не дохожу до 3-го цикла, который делает minCount = 3001 (неверно - это должно быть 2001) и maxCount = 3000 (правильно). Что я тут не так делаю?

 minCount = 1
maxCount = 1000
master = []
temp = {}
for x in range(3):
    params = {'f': 'json', 'where': 'OBJECTID>='+str(minCount)+'and OBJECTID<='+str(maxCount), 'geometryType': 'esriGeometryPolygon', 'spatialRel': 'esriSpatialRelIntersects','outFields': '*', 'returnGeometry': 'true'}
    r = requests.get('https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query', params)
    print("Query url:")
    print(r.url)
    cslfJson = r.json()
    master.append(cslfJson)
    print("Current Max Count:")
    print(maxCount)
    print("Current Iteration Count:")
    print(x)
    minCount = minCount + maxCount
    maxCount = maxCount + 1000
    for item in cslfJson['features']:
        objCount = item['attributes']['OBJECTID']

        if maxCount > objCount:
            break

Вот результаты моих команд печати на консоли. По 3-му URL вы можете видеть, что вызов для переменной minCount неправильный:

URL запроса: https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query?f=json&where=OBJECTID%3E%3D1and+OBJECTID%3C%3D1000&geometryType=esriGeometryPolygon&spatialRel=esriSpatialRelIntersects&outFields=%2A&returnGeometry=true Текущее максимальное количество: 1000 Текущее число итераций: 0 2 URL запроса: https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query?f=json&where=OBJECTID%3E%3D1001and+OBJECTID%3C%3D2000&geometryType=esriGeometryPolygon&spatialRel=esriSpatialRelIntersects&outFields=%2A&returnGeometry=true Текущее максимальное количество: 2000 Текущее число итераций: 1 1006 URL запроса: https://hazards.fema.gov/gis/nfhl/rest/services/CSLF/Prelim_CSLF/MapServer/3/query?f=json&where=OBJECTID%3E%3D3001and+OBJECTID%3C%3D3000&geometryType=esriGeometryPolygon&spatialRel=esriSpatialRelIntersects&outFields=%2A&returnGeometry=true Текущее максимальное количество: 3000 Текущее число итераций: 2

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