GSpread get_all_records()在读取超过千行时不会自动停止

时间:2017-11-02 17:44:24

标签: python google-sheets google-spreadsheet-api gspread google-python-api

我需要一个可以帮助我从Google表格中检索数据的API,因此我尝试使用GSpread从单个工作表中检索3000多行,我花了几分钟等待打印数据。但是,有些情况下即使我等了10多分钟,数据仍未显示。奇怪的部分是10分钟后,当我尝试通过单击Ctrl + C中断程序时,过程结束没有任何错误并打印完整的数据。我还尝试在运行程序后1分钟中断程序,但它显示了一些错误消息并且没有显示任何数据。

这是GSpread中的错误还是在Google表格中检索数千行的常见问题?在检索完数据后,程序如何自动结束?

这是我的代码(我只是按照文档说明):

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)

sheet = client.open('Sample Sheet').worksheet('First Worksheet')
data = sheet.get_all_records()
print(data)

由于我正在检索超过一千行代码,有没有比GSpread API更好,更有效的替代方案,从Google表格到Python检索数据时速度更快?因为我不想等待检索数据超过10分钟。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。这很快,但并不理想。您可以调整工作表的大小,清除所有数据。运行以下代码后,请不要忘记删除单元格 A1 上的内容。

worksheet.resize(1,1)
worksheet.resize(1000,26) #or the size of your worksheet