Python: лучший способ получить смарт-лист по имени - PullRequest
0 голосов
/ 28 августа 2018

Я ищу, чтобы найти лист через API Smartsheet, и все, что у меня есть, это имя листа. Я сейчас решаю это так

sheet_name = 'The sheet I have the name of'
sheets = ss_client.Sheets.list_sheets(include_all=True).data
sheet_id = next(sheet.id for sheet in sheets if sheet.name == sheet_name)

sheet_that_I_want = ss_client.Sheets.get_sheet(sheet_id)

Существует метод get_sheet , но он основан на идентификаторе листа. Я чувствую, что должен быть более прямой способ сделать это, но я не уверен, что это будет.

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Я обнаружил, что если я создаю лист и затем ищу его, он не будет найден. Обновление индексов занимает несколько секунд. Использование list_sheets всегда включает только что созданный файл.

0 голосов
/ 28 августа 2018

Имена листов не обязательно должны быть уникальными, поэтому нет конечной точки для получения листа по имени.

Однако вы можете использовать конечную точку search для поиска листа по имени, а затем просеять результаты, которые потенциально будут меньше, чем итерации по всем вашим листам.

sheet_name = "Demo"
search_results = ss_client.Search.search(sheet_name).results

sheet_id = next(result.object_id for result in search_results if result.object_type == 'sheet')
sheet_that_I_want = ss_client.Sheets.get_sheet(sheet_id)
print(sheet_that_I_want)
...