Итерация по столбцам smartsheet возвращает только первый столбец python - PullRequest
0 голосов
/ 11 июля 2019

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

my_sheet = smartsheet_client.Sheets.get_sheet('507.......')
print(my_sheet)
col_id={}
print("\n\ncols:",type(my_sheet.columns))
def get_primary_column_id(columns):
    prim_col_id=-1
    for Mycolumn in columns:
        print(Mycolumn.title)
        col_id[Mycolumn.title]=Mycolumn.id
        if (Mycolumn.primary):
            prim_col_id=Mycolumn.id
            print("primcol",prim_col_id)
    return prim_col_id

primary_column_id = get_primary_column_id(my_sheet.columns)
print("colid",col_id)

Вывод: Ниже приведена часть вывода из my_sheet

At": "2019-07-11T13:46:11+00:00Z", "columns": [{"index": 0, "title": "Mid", "pri
mary": true, "width": 150, "version": 0, "validation": false, "type": "TEXT_NUMB
ER", "id": 984.....}, {"index": 1, "title": "Marketing Director", "width"
: 150, "version": 0, "validation": false, "type": "TEXT_NUMBER", "id": 100.....}, {"index": 2, "title": "Development Lead", "width": 150, "version": 0,
"validation": false, "type": "TEXT_NUMBER", "id": 548.......}, {"index": 3
, "title": "System1", "width": 150, "version": 0, "validation": false, "type": "
TEXT_NUMBER", "id": 323.....}, {"index": 4, "title": "System2", "width":
150, "version": 0, "validation": false, "type": "TEXT_NUMBER", "id": 774....}], "totalRowCount": 3, "accessLevel": "OWNER", "id": 507......, "cr
eatedAt": "2019-05-20T08:52:20+00:00Z", "resourceManagementEnabled": false}
(u'\n\ncols:', <class 'smartsheet.types.TypedList'>)
Mid
(u'primcol', 984.......)
(u'colid', {u'Mid': 984......})

1 Ответ

0 голосов
/ 11 июля 2019

Выполнение этого кода на моем собственном листе выводит список всех столбцов на листе с их именами и идентификаторами. Вы проверили лист и подтвердили, что он содержит более одного столбца?
Я прокомментировал оператор print(my_sheet) во второй строке, так как распечатка ответа всего листа заняла достаточно места на моем терминале. Это помогло показать мне, что я получаю полный список каждой колонки на листе. До этого я все еще получал весь список. Удаление просто облегчило чтение.

...