gspread.exceptions.APIError:{'code':429,'message':“超出配额组'ReadGroup'的配额并限制消费者'sheets.googleapis.com'服务'每100秒每个用户的读取请求' project_number:changedthis'.", 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Google 开发者控制台 API 密钥', 'url': 'https://console.developers.google.com/project/changedthis/apiui/credential'}]}]}
我的代码每 60 秒发送一次数据,这只填充 3 个单元格。现在我在程序开始时收到错误。我要等几天还是永久封锁?
There is no daily usage limit
但有限requests per 100 seconds
。如果您是计费帐户的所有者,则可以增加此配额。否则 500 requests per 100 seconds per project
和 100 requests per 100 seconds per user
就是极限。
作为解决方法,请使用不同的服务帐户以达到 500 个请求/100 秒。
查看您的代码,这些是当前正在起作用的更改(查看范围,其中一些在本例中是不必要的,尽管我没有修改它们):
import gspread
import time
import datetime
from google.oauth2 import service_account
SCOPES = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
"https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
SERVICE_ACCOUNT_FILE = 'creds.json'
#creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
creds = credentials.with_subject('[email protected]')
client = gspread.authorize(creds)
sheet = client.open_by_key("ID").sheet1 # Open the spreadsheet
i = 1
while True:
cell = sheet.cell(i, 1).value
i += 1
if len(cell) == 0: # of een manier om te kijken of de cell leeg is
print("Empty row has been found at row", (i-1))
break
# ofzo, als er geen begrenzing is en geen lege cell dan blijft deze lus maar doorgaan totdat sheet.cell(i, 1).value fout gaat denk ik
if i > 1000:
print("Did not find any empty rows")
break
while True:
x = str(datetime.datetime.now())
sheet.update_cell(i, 1, x) # Update one cell
time.sleep(60)
为了使这项工作有效,您应该激活域范围的权限
我在写入 Google 电子表格时遇到了同样的问题,我将代码中的输出数据记录到
local csv
文件中,然后将其导入到 google 表格中