我正在基于minCount
和maxCount
变量向REST服务进行批量请求。在遍历每个循环时,其想法是首先设置minCount = 1
和maxCount = 1000
,然后再设置minCount = minCount + maxCount
和maxCount = maxCount + 1000
。在我进入第三个循环之前,此方法工作正常,这使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
这是我的控制台打印命令的结果。您可以通过第三个网址看到minCount
变量的调用不正确:
查询网址: 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查询网址: 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查询网址: 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