我试图通过用户编写的变量进行范围调用,但我总是得到无法解析错误,但我知道这是一个真正的标签
def on_commencer(self,event):
Range = ('RANGE_'+self.NumSerie.GetValue())
data = pull_sheet_data(SCOPES,RECETTES_SHEET_ID,Range)#RANGE_REC100
df = pd.DataFrame(data[1:], columns=data[0])
print(df)
和我的另一部分在一起
def pull_sheet_data(SCOPES,SPREADSHEET_ID,DATA_TO_PULL):
#creds = gsheet_api_check(SCOPES)
service = build('sheets', 'v4', credentials=creds)
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=SPREADSHEET_ID, range=DATA_TO_PULL).execute()
values = result.get('values', [])
if not values:
print('No data found.')
else:
rows = sheet.values().get(spreadsheetId=SPREADSHEET_ID, range=DATA_TO_PULL).execute()
data = rows.get('values')
print("COMPLETE: Data copied")
return data
如果我写RANGE_REC100而不是Range,它可以工作,但如果在我的应用程序中我写REC100,这给了我全名RANGE_REC100
我发现我试图通过字符串调用常量,但我需要的是为那些遇到类似问题的人建立一个字典,我的新代码是
def on_commencer(self,event):
Range = ('RANGE_'+self.NumSerie.GetValue())
Tankask = TankRange[Range]
data = pull_sheet_data(SCOPES,RECETTES_SHEET_ID,Tankask)#RANGE_REC100
df = pd.DataFrame(data[1:], columns=data[0])
print(df)
我的常量列表是这样的
RANGE_REC100P = 'REC100'
RANGE_CB100 = 'REC100!A2:C4'
RANGE_REC100_DW = 'REC100!A10:C30'
现在看起来是这样的
TankRange = {
'RANGE_REC100P' : ('REC100'),
'RANGE_CB100' : ('REC100!A2:C4'),
'RANGE_REC100_DW' : ('REC100!A10:C30')}