我在使用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'
感谢任何帮助。
答案 0 :(得分:1)
您只是打开工作簿而不是指定要从中获取get_all_values的工作表。您需要调用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是工作簿中的第一个工作表)。
答案 1 :(得分: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()