[Python] Reset offset variable in API when using a for loop

Discussão em 'Python' iniciado por Stack, Abril 11, 2025.

  1. Stack

    Stack Membro Participativo

    I am working with a real estate API pulling rental listings. I'd like to loop through a list of zipcodes to pull the data. The API requires an offset of 500 rows of data or less. The code below works fine until the while loop hits the second zipcode. The issue is that after the first zipcode has run successfully, I need the offset variable to reset to 500 and begin counting up again until the while loop breaks for the second zipcode in the list.

    `# This just formats your token for the requests library.
    headers = {
    "X-RapidAPI-Key": "your-key-here",
    "X-RapidAPI-Host": "realty-mole-property-api.p.rapidapi.com"
    }

    # Initial Limit and Offset values.
    limit = 500
    offset = 0
    zipCode = [77449, 77008]

    # This will be an array of all the listing records.

    texas_listings = []

    # We loop until we get no results.
    for i in zipCode:
    while True:
    print("----")
    url = f"https://realty-mole-property-api.p.rapidapi.com/rentalListings?offset=. {offset}&limit={limit}&zipCode={i}"
    print("Requesting", url)
    response = requests.get(url, headers=headers)
    data = response.json()
    print(data)
    # Did we find any listings?
    if len(data) == 0:
    # If not, exit the loop
    break

    # If we did find listings, add them to the data
    # and then move onto the next offset.
    texas_listings.extend(data)

    offset = offset + 500


    `

    Here is a snippet of the final printed output. As you can see, zipcode 77008 gets successfully passed to the zipCode variable after the 77449 zipcode returns an empty list and breaks the loop at offset 5500. However, you can also see that the 77008 offset starts at 5500 and it appears there aren't that many listings in that zipcode. How do I reset offset variable to 500 and begin counting again? [​IMG]

    Continue reading...

Compartilhe esta Página