gpt4 book ai didi

python/gspread - 如何使用数据列表更新一系列单元格?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:21 24 4
gpt4 key购买 nike

我有一个数据列表(从 CSV 中提取),我正在尝试使用 Python/GSpread 更新 Google 文档上的一系列单元格。这是我的代码示例:

import gspread
def write_spreadsheet(spreadsheet_name, sheet_id, data, start_row):
gc = gspread.login('yourmail@gmail.com', 'password')
wks = gc.open(spreadsheet_name).get_worksheet(sheet_index)
start_letter = 'A'
end_letter = string.uppercase[len(data[0]) - 1]
end_row = start_row + len(data) - 1
range = "%s%d:%s%d" % (start_letter, start_row, end_letter, end_row)

print "Range is: " + range
cell_list = wks.range(range)

try:
for i, val in enumerate(data): #gives us a tuple of an index and value
cell_list[i].value = val #use the index on cell_list and the val from cell_values

#Update the whole sheet
wks.update_cells(cell_list)

except:
print "Exception"

this_data_ex = [['data1', 'data1'], ['data2', 'data2']]
write_spreadsheet('python-test', 1, this_data_ex, 1)

这可行,但它不会将列表行条目分隔到正确的列中。 Google 表格上的输出如下所示:

    A                  B

['数据1','数据1'] ['数据2','数据2']

如何修复“try - for”部分以将每个数据条目写入新单元格,然后将行换行到正确的位置?(像这样)

 A   |  B

数据1 |数据1

数据2 |数据2

最佳答案

双重嵌套for循环;一个用于行,一个用于列,然后单独更新每个单元格。这部分似乎可以正常工作并达到预期的结果:

 try:
idx = 0
for (start_row, rowlist) in enumerate(data):
for (colnum, value) in enumerate(rowlist):
cell_list[idx].value = value
idx += 1
if idx >= len(cell_list):
break

# Update the whole sheet
wks.update_cells(cell_list)

关于python/gspread - 如何使用数据列表更新一系列单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28698050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com