遍历工作表并追加列
Loop through sheets and append columns
我在智能sheet 工作区中有超过 100 个 sheet。我想使用 python api 遍历每个 sheet 并将行 ID、sheet ID 和主列附加到数组或 pandas 数据框。
import requests
import pandas as pd
import io
import warnings
warnings.filterwarnings(action='once')
import smartsheet
import os.path
from time import gmtime, strftime
import pandas as pd
import numpy as np
import json
import requests
import hashlib
fullList = pd.DataFrame()
for sheet in sheetArray:
r = requests.get(baseURL + "/" + str(sheet), headers=headers)
rows = json.loads(r.text)
rows = rows['rows']
rowsDF = pd.DataFrame.from_dict(rows)
dropCols = ["cells","createdAt", "expanded", "modifiedAt","siblingId"]
rowsDF = rowsDF.drop(dropCols, axis=1)
fullList.append(rowsDF)
我不确定 pandas,但我可以帮助您将信息放入 python 数组中。
使用Smartsheet Python SDK you'll want to first install the SDK,然后import smartsheet
。
接下来,像这样
用你的access token初始化一个Smartsheet对象
ss_client = smartsheet.Smartsheet(SMARTSHEET_ACCESS_TOKEN)
抓住你的工作区
workplace = ss_client.Workspaces.get_workspace(workplace_id)
从工作区中获取 sheets
wp_sheets = workplace.sheets
初始化您正在创建的数组
info_array = []
循环工作区对象中的 sheets。这些 sheet 对象只有几个字段来标识 sheet,因此您需要使用 sheet.id
从 Smartsheet 中获取完整的 sheet ] API.
# loop through sheets
for sheet in wp_sheets:
# get sheet
full_sheet = ss_client.Sheets.get_sheet(sheet.id)
获取 sheet
的主列
# get the primary column
primary_column_id = get_primary_column_id(full_sheet.columns)
get_primary_column_id()
函数如下所示。列对象有一个 primary
的布尔字段。找到 primary
设置为 true 的列。
def get_primary_column_id(columns):
for column in columns:
if (column.primary):
return column.id
获取行 ID 并将所有信息附加到 info_array
。
# get row ids
for row in full_sheet.rows:
info_array.append({'sheet_id': sheet.id,
'row_id': row.id,
'primary_column_id': primary_column_id})
这是Gist。
我在智能sheet 工作区中有超过 100 个 sheet。我想使用 python api 遍历每个 sheet 并将行 ID、sheet ID 和主列附加到数组或 pandas 数据框。
import requests
import pandas as pd
import io
import warnings
warnings.filterwarnings(action='once')
import smartsheet
import os.path
from time import gmtime, strftime
import pandas as pd
import numpy as np
import json
import requests
import hashlib
fullList = pd.DataFrame()
for sheet in sheetArray:
r = requests.get(baseURL + "/" + str(sheet), headers=headers)
rows = json.loads(r.text)
rows = rows['rows']
rowsDF = pd.DataFrame.from_dict(rows)
dropCols = ["cells","createdAt", "expanded", "modifiedAt","siblingId"]
rowsDF = rowsDF.drop(dropCols, axis=1)
fullList.append(rowsDF)
我不确定 pandas,但我可以帮助您将信息放入 python 数组中。
使用Smartsheet Python SDK you'll want to first install the SDK,然后import smartsheet
。
接下来,像这样
用你的access token初始化一个Smartsheet对象ss_client = smartsheet.Smartsheet(SMARTSHEET_ACCESS_TOKEN)
抓住你的工作区
workplace = ss_client.Workspaces.get_workspace(workplace_id)
从工作区中获取 sheets
wp_sheets = workplace.sheets
初始化您正在创建的数组
info_array = []
循环工作区对象中的 sheets。这些 sheet 对象只有几个字段来标识 sheet,因此您需要使用 sheet.id
从 Smartsheet 中获取完整的 sheet ] API.
# loop through sheets
for sheet in wp_sheets:
# get sheet
full_sheet = ss_client.Sheets.get_sheet(sheet.id)
获取 sheet
的主列# get the primary column
primary_column_id = get_primary_column_id(full_sheet.columns)
get_primary_column_id()
函数如下所示。列对象有一个 primary
的布尔字段。找到 primary
设置为 true 的列。
def get_primary_column_id(columns):
for column in columns:
if (column.primary):
return column.id
获取行 ID 并将所有信息附加到 info_array
。
# get row ids
for row in full_sheet.rows:
info_array.append({'sheet_id': sheet.id,
'row_id': row.id,
'primary_column_id': primary_column_id})
这是Gist。