Я выполняю пакетные запросы к службе 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