2

我对 Gspread 的 get_all_values() 有疑问

import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
from gmail_variables import *

json_key = json.load(open('key7367.json'))
scope = ['https://spreadsheets.google.com/feeds']

credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)

gc = gspread.authorize(credentials)


wks = gc.open_by_url('https://docs.google.com/a/test.com/spreadsheets/d/1-cAg..sLt5Ho/edit?usp=sharing')

recipients = wks.get_all_values()

我正在尝试编写一个电子邮件程序以从 Google 电子表格中提取。当我尝试运行它时;我得到了错误。

'Spreadsheet' object has no attribute 'get_all_values'

任何帮助表示赞赏。

4

2 回答 2

1

您只是打开工作簿,而不是指定要从中获取所有值的工作表。您需要调用该get_worksheet()方法。尝试:

wks = gc.open_by_url('https://docs.google.com/a/test.com/spreadsheets/d/1-cAg..sLt5Ho/edit?usp=sharing').get_worksheet(0)

recipients = wks.get_all_values()

其中“0”是工作表的索引(0 是工作簿中的第一个工作表)。

于 2015-07-15T05:59:46.567 回答
0

打开电子表格 ( open_by_url) 后,您需要指定您尝试使用的工作表,即使您只有一个。您可以通过几种不同的方式执行此操作:

按索引(从 0 开始)

sh = wks.get_worksheet(0)

按标题

sh = wks.worksheet("January")

最常见的情况:Sheet1

sh = wks.sheet1

所以修复将是

wks = gc.open_by_url('https://docs.google.com/a/test.com/spreadsheets/d/1-cAg..sLt5Ho/edit?usp=sharing')
sh = wks.get_worksheet(0)
recipients = sh.get_all_values()
于 2015-07-17T23:38:46.373 回答