Перебор всех строк Smartsheet API Python

#python #smartsheet-api

#python #smartsheet-api

Вопрос:

Я пытаюсь выполнить итерацию по всем строкам на листе, но кажется, что простое использование .rows ограничено возвратом 100 элементов.

 for temp_row in inventory.rows:
    x  = 1
print x #X will always return <= 100
  

Независимо от того, сколько элементов у меня там.

Что я делаю не так?

Редактировать: просто чтобы уточнить, я пытаюсь что-то сделать с каждой строкой, а не считать их, это всего лишь пример того, как я заметил, что он захватывает только 100 строк.

Комментарии:

1. вы пробовали len(inventory.rows) ?

Ответ №1:

include_all Параметры не являются частью get_sheet() .

Параметр вPython SDK 2.0 page_size

и по умолчанию 100 .

 my_sheet = smartsheet.Sheets.get_sheet(sheet_id, page_size=5000)
  

где sheet_id идентификатор вашего листа.

Если у вас уже есть объект sheet, вы можете использовать

 my_sheet.total_row_count
  

чтобы получить количество строк и использовать это вместо 5000 .

Комментарии:

1. да, в старых документах есть pageSize= , но вы правы page_size= , это тот, который работает сейчас.

Ответ №2:

По умолчанию get_sheet вернет страницу со 100 строками. Включите флаг: includeAll=true для возврата всех строк.

Для получения дополнительной информации см. Документацию по подкачке.

Ответ №3:

Похоже, что, возможно, SDK использует подкачку при выполнении операции получения листа — т. Е. Он возвращает только первую страницу результатов в ответе, которая по умолчанию равна 100 строкам. Как описано в документах API, размер страницы по умолчанию равен 100 строкам в ответе Get Sheet, если в запросе не указано иное. (В документации см. Описание параметров pageSize и page.)

Я бы посоветовал вам просмотреть SDK на предмет возможности указывать размер страницы и / или страницу при вызове операции получения листа.

Ответ №4:

Важно отметить, что при выполнении запроса к Smartsheet API напрямую, а не через Python SDK, ответом по умолчанию является включение всех строк листа без необходимости включения page pageSize параметров или.