请求中的迭代问题

时间:2018-08-27 19:39:24

标签: variables iteration python-3.6

我正在基于minCountmaxCount变量向REST服务进行批量请求。在遍历每个循环时,其想法是首先设置minCount = 1maxCount = 1000,然后再设置minCount = minCount + maxCountmaxCount = 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

0 个答案:

没有答案