我正在尝试将 CSV 文件上传到 python 中的谷歌工作表(希望每次都上传到同一张工作表和不同的工作表)。我浏览了所有教程,我知道我需要:
在 google 中进行身份验证以生成存储在
credentials.json
.使用代码中的凭据,它在我的机器上运行良好。
def generate_credentials(self):
'''
Retrieves token and generates credentials
'''
creds = None
flow = InstalledAppFlow.from_client_secrets_file('./Memory_test/credentials.json', SCOPES)
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
if creds == None:
flow = InstalledAppFlow.from_client_secrets_file('./Memory_test/credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
return creds
def test_method(self):
creds = self.generate_credentials()
service = build('sheets', 'v4', credentials=creds)
# Call the Sheets API
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME).execute()
values = result.get('values', [])
if not values:
print('No data found.')
else:
print('Name, Major:')
for row in values:
# Print columns A and E, which correspond to indices 0 and 4.
print('%s, %s' % (row[0], row[4]))
我已经设法在我的机器上完成了这两个步骤。问题是当我想在另一台机器上运行代码而不生成新credentials.json
文件时。当我在新机器上运行代码时,每当代码运行时,我都需要登录到我的谷歌账户,通过该账户我生成了 api 密钥。有什么办法解决这个问题吗?