#python #smartsheet-api
#python #smartsheet-api
Вопрос:
Я продолжаю пытаться скопировать строку с одного листа на другой с вложениями строк. Вложения копируются автоматически при перемещении строк между листами, но не при копировании. В документации API указано, что существует параметр «включить», для которого можно установить значение «все», и что это также приведет к копированию вложений. Кто-нибудь захочет предоставить образец этого параметра и как записать его во что-то вроде следующего?
прошу прощения, если это базовый python. Я новичок в языке и очень новичок в api.
response = smart.Sheets.copy_rows(
18382041966468,
smart.models.CopyOrMoveRowDirective({
'row_ids': [7372751113086852],
'to': smart.models.CopyOrMoveRowDestination({
'sheet_id': 4433677678602116
})
})
)
Ответ №1:
include
Атрибут является третьим аргументом, который вы предоставляете copy_rows
методу после CopyOrMoveRowDirective
того, где вы устанавливаете row_ids
лист назначения и. Для копирования в дополнение к данным ячейки требуется список элементов строки, разделенных запятыми. Я нашел это, рассматривая copy_rows
метод в SDK здесь.
Вы также можете просто задать одну строку. Ваш код с include='all'
помощью будет выглядеть следующим образом:
response = smart.Sheets.copy_rows(
18382041966468,
smart.models.CopyOrMoveRowDirective({
'row_ids': [7372751113086852],
'to': smart.models.CopyOrMoveRowDestination({
'sheet_id': 4433677678602116
})
}),
include='all'
)
Чтобы сделать это со списком для включения, вы можете установить его следующим образом:
response = smar_client.Sheets.copy_rows(
4453526869960580, # sheet_id of rows to be copied
smar_client.models.CopyOrMoveRowDirective({
'row_ids': [1874694623782788],
'to': smar_client.models.CopyOrMoveRowDestination({
'sheet_id': 1955951847729028
})
}),
include=['attachments','discussions']
)
Комментарии:
1. Спасибо, это решило проблему. В документации упоминалось, что этот параметр представляет собой список элементов. Я воспринимал это как буквальный список python.
2. Отлично, я рад, что это помогло. Вы можете предоставить список вместо строкового значения, если хотите добавить несколько значений для включения, а не только все. Вы можете установить include равным списку со строками для обсуждений и вложений, если вам нужны только те, например. Я просто отредактировал свой ответ, чтобы иметь это, и показал пример использования списка для включения вместо просто строкового значения для всех.