I added some debugging into the loop print(f"Getting {len(records)} / {total_records} records from page {page} from {url}"):
Getting 0 / None records from page 1 from https://api.knack.com/v1/objects/object_7/records/
Getting 954 / 6693 records from page 2 from https://api.knack.com/v1/objects/object_7/records/
Getting 1954 / 6693 records from page 3 from https://api.knack.com/v1/objects/object_7/records/
Getting 2954 / 6693 records from page 4 from https://api.knack.com/v1/objects/object_7/records/
Getting 3954 / 6693 records from page 5 from https://api.knack.com/v1/objects/object_7/records/
Getting 4954 / 6693 records from page 6 from https://api.knack.com/v1/objects/object_7/records/
Getting 5954 / 6693 records from page 7 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 8 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 9 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 10 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 11 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 12 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 13 from https://api.knack.com/v1/objects/object_7/records/
Getting 6647 / 6693 records from page 14 from https://api.knack.com/v1/objects/object_7/records/
It looks like even though we requested 1000 rows we only got 954. Should we add a failsafe like below:
while knackpy.api._continue(total_records, len(records), record_limit):
...
fetched_records = res.json()["records"]
records += fetched_records
page += 1
if len(fetched_records) == 0: # If we're no longer fetching rows, break out of the loop
break
I added some debugging into the loop
print(f"Getting {len(records)} / {total_records} records from page {page} from {url}"):It looks like even though we requested 1000 rows we only got 954. Should we add a failsafe like below: