解决方法 Google Sheets API 不接受未指定所需最终行的范围请求
Workaround Google Sheets API does not accept range request without specifying desired final line
我的电子表格包含此模型中的值:
我需要创建一个列表以在 Python 中使用,包括值之间存在的空字段:
CLIENT_SECRET_FILE = 'client_secrets.json'
API_NAME = 'sheets'
API_VERSION = 'v4'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
spreadsheet_id = sheet_id
get_page_id = 'Winning_Margin'
range_score = 'O1:O10000'
spreadsheets_match_score = []
range_names2 = get_page_id + '!' + range_score
result2 = service.spreadsheets().values().get(
spreadsheetId=spreadsheet_id, range=range_names2, valueRenderOption='UNFORMATTED_VALUE').execute()
sheet_output_data2 = result2["values"]
for i, eventao2 in enumerate(sheet_output_data2):
try:
spreadsheets_match_score.append(sheet_output_data2[i][0])
except:
spreadsheets_match_score.append('')
在这种情况下,此列表 (spreadsheets_match_score = []
) 将导致:
["0-0","0-0","4-0","0-1","6-0","","","","0-3","2-2","","","","","0-1","","","3-0","1-1","3-1","","","",""]
我的电子表格目前有 24 行,但它会在没有固定结束值的情况下增长。
所以,我尝试使用range不放最后一行的值(range_score = 'O1:O'
),但是不接受,range需要指定最后一行(range_score = 'O1:O10000'
).
我准确地输入了 10000
这样我就不必更改,但是这样做是非常错误的,因为它会搜索一个不存在的范围,我很担心将来它会产生一个错误。
有什么方法可以不用指定工作表的最后一行吗?
成为这样的人:
range_score = 'O1:O'
问题不在数据收集的范围指定方法中,如果查找所有列行,可以使用range_score = 'O1:O'
或range_score = 'O1:O100000000000'
。
在问题的情况下,问题是当所需列的行 1
没有值时,为空,请求失败但由于空 ["values"]
return.
总之我找错地方了
我的电子表格包含此模型中的值:
我需要创建一个列表以在 Python 中使用,包括值之间存在的空字段:
CLIENT_SECRET_FILE = 'client_secrets.json'
API_NAME = 'sheets'
API_VERSION = 'v4'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
spreadsheet_id = sheet_id
get_page_id = 'Winning_Margin'
range_score = 'O1:O10000'
spreadsheets_match_score = []
range_names2 = get_page_id + '!' + range_score
result2 = service.spreadsheets().values().get(
spreadsheetId=spreadsheet_id, range=range_names2, valueRenderOption='UNFORMATTED_VALUE').execute()
sheet_output_data2 = result2["values"]
for i, eventao2 in enumerate(sheet_output_data2):
try:
spreadsheets_match_score.append(sheet_output_data2[i][0])
except:
spreadsheets_match_score.append('')
在这种情况下,此列表 (spreadsheets_match_score = []
) 将导致:
["0-0","0-0","4-0","0-1","6-0","","","","0-3","2-2","","","","","0-1","","","3-0","1-1","3-1","","","",""]
我的电子表格目前有 24 行,但它会在没有固定结束值的情况下增长。
所以,我尝试使用range不放最后一行的值(range_score = 'O1:O'
),但是不接受,range需要指定最后一行(range_score = 'O1:O10000'
).
我准确地输入了 10000
这样我就不必更改,但是这样做是非常错误的,因为它会搜索一个不存在的范围,我很担心将来它会产生一个错误。
有什么方法可以不用指定工作表的最后一行吗?
成为这样的人:
range_score = 'O1:O'
问题不在数据收集的范围指定方法中,如果查找所有列行,可以使用range_score = 'O1:O'
或range_score = 'O1:O100000000000'
。
在问题的情况下,问题是当所需列的行 1
没有值时,为空,请求失败但由于空 ["values"]
return.
总之我找错地方了