使用Python遍历嵌套列表

时间:2020-08-19 12:01:26

标签: python python-3.x smartsheet-api

我正在尝试用我的代码更新智能表。我将数据存储在一个嵌套列表中,并且希望每次(按值)将其传递给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:\Temp\Book1.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 个答案:

答案 0 :(得分:0)

您仅指定列表中的第一个元素,而不会遍历其余元素。

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中包含的内容的形状。