0

我正在尝试将 CSV 文件上传到 python 中的谷歌工作表(希望每次都上传到同一张工作表和不同的工作表)。我浏览了所有教程,我知道我需要:

  1. 在 google 中进行身份验证以生成存储在credentials.json.

  2. 使用代码中的凭据,它在我的机器上运行良好。

    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 密钥。有什么办法解决这个问题吗?

4

0 回答 0