使用Python Smartsheet SDK在文件夹中创建表格时遇AttributeError求助
问题
已通过pip成功安装smartsheet-python-sdk,且API密钥可正常用于向表格添加列。但尝试调用Folder对象的create_sheet_in_folder方法在指定文件夹内创建新表格时,IDE中无该方法提示,运行代码后出现如下错误:
代码示例
#Smartsheet API Challenge import smartsheet # Set your Smartsheet API access token access_token = "ACCESS_TOKEN" smartsheet_client = smartsheet.Smartsheet(access_token=access_token) folder_id = "FOLDER_ID" # Create a new sheet sheet_spec = smartsheet.Smartsheet.models.Sheet({ 'name' : 'Sheet B', 'columns' : [{ 'title' : 'Primary Column', 'primary' : True, 'type' : 'TEXT' }, { 'title' : 'Col 1', 'type' : 'TEXT' } ] }) #make the new sheet response = smartsheet_client.models.Folder.create_sheet_in_folder(folder_id,sheet_spec) new_sheet = response.result
错误信息
response = smartsheet_client.models.Folder.create_sheet_in_folder(folder_id,sheet_spec) AttributeError: type object 'Folder' has no attribute 'create_sheet_in_folder'
解决方法
问题核心是调用路径错误,create_sheet_in_folder并非Folder模型类的方法,而是smartsheet客户端下Folders服务的方法。正确调用方式如下:
修正后的代码
#Smartsheet API Challenge import smartsheet # Set your Smartsheet API access token access_token = "ACCESS_TOKEN" smartsheet_client = smartsheet.Smartsheet(access_token=access_token) folder_id = "FOLDER_ID" # Create a new sheet sheet_spec = smartsheet.models.Sheet({ 'name': 'Sheet B', 'columns': [ { 'title': 'Primary Column', 'primary': True, 'type': 'TEXT' }, { 'title': 'Col 1', 'type': 'TEXT' } ] }) # 调用Folders服务的创建方法 response = smartsheet_client.Folders.create_sheet_in_folder(folder_id, sheet_spec) new_sheet = response.result
关键修正点
- 替换调用路径:将
smartsheet_client.models.Folder.create_sheet_in_folder改为smartsheet_client.Folders.create_sheet_in_folder,客户端的Folders属性才是处理文件夹相关操作的服务实例 - 简化模型引用:
smartsheet.Smartsheet.models.Sheet可简化为smartsheet.models.Sheet,前者写法冗余
内容的提问来源于stack exchange,提问作者user22004098
相关产品推荐
相关产品推荐

