#python #python-3.x #smartsheet-api
#python #python-3.x #smartsheet-api
Вопрос:
Я пытаюсь с помощью своего кода обновить smartsheet. У меня есть мои данные во вложенном списке, и я хочу каждый раз передавать их в функцию new_rows (значение за значением). Я не смог выполнить итерацию обычными методами, поскольку я искал в Интернете, потому что я думаю, что я что-то пропустил. Что происходит сейчас, он просто отправляет запись в первой строке, а затем останавливается. Итак, я понимаю, что нужно перебирать вложенный список и делать это в цикле, но я не мог понять, как это сделать. Кто-нибудь может мне помочь?
import csv
import os
from simple_smartsheet import Smartsheet
from simple_smartsheet.models import Sheet, Column, Row, Cell, ColumnType
data = pd.read_csv(r'C:TempBook1.csv')
df = pd.DataFrame(data, columns=['Name', 'TCU', 'Vendor', 'App', 'App_Version'])
example = df.values.tolist()
print(example)
TOKEN = os.getenv("")
SHEET_ID = "Book1"
smartsheet = Smartsheet("**************")
# retrieve a list of sheets (limited set of attributes)
sheet = smartsheet.sheets.get(SHEET_ID)
print(sheet)
new_rows = [
Row(
to_top=True,
cells=[
sheet.make_cell("Name", example[0][0]),
sheet.make_cell("TCU", example[0][0]),
sheet.make_cell("Vendor", example[0][0]),
sheet.make_cell("App",example[0][0]),
sheet.make_cell("App_Version", example[0][0]),
],
),
]
smartsheet.sheets.add_rows(sheet.id, new_rows)
Ответ №1:
Вы указываете только первый элемент в своем списке и никогда не выполняете итерацию по остальным элементам.
new_rows = []
for element in example:
row = Row(to_top=True,
cells=[
sheet.make_cell("Name", element[0]),
sheet.make_cell("TCU", element[1])
])
new_rows.append(row)
Обратите внимание, что в этом примере представлено несколько разных способов доступа к вашему списку, и, возможно, потребуется изменить его, чтобы соответствовать форме того, что содержится внутри example
.