首页 > 解决方案 > 使用 python 连接并上传到 Google 表格

问题描述

我正在尝试按照链接中给出的说明将 pandas 数据框上传到 Google 表格。

我创建了项目,启用了 API,创建了服务帐户凭据并生成了密钥。我将 JSON 放在执行脚本的文件夹中,还使用 ​​C:/Users/XYZ/ 下的 json 文件创建了 .gdrive_private

但是当我尝试通过 python 访问它时,我收到以下错误。

InvalidClientSecretsError: ('Error opening file', 'C:\\Users\\XYZ\\.gdrive_private', 'No such file or directory', 2)

 File "C:\Users\XYZ\anaconda3\lib\site-packages\oauth2client\clientsecrets.py", line 124, in _loadfile
    raise InvalidClientSecretsError('Error opening file', exc.filename,

InvalidClientSecretsError: ('Error opening file', 'C:\\Users\\XYZ\\.gdrive_private', 'No such file or directory', 2)

我的代码:

import gspread
from df2gspread import df2gspread as d2g
from google.oauth2.service_account import Credentials    
# Connect to Gsheets
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
credentials = Credentials.from_service_account_file('myprojects-130288-28afb6b85524.json', scopes=scope)
gc = gspread.authorize(credentials)
spreadsheet_key = 'XYZ-Key'
wks_name = 'Sheet1'
d2g.upload(dataframe, spreadsheet_key, wks_name, credentials=credentials, row_names=True)

奇怪的错误是 C:\Users\XYZ\.gdrive_private 错误消息中的双反斜杠。知道为什么会有双反斜杠以及如何纠正这个问题吗?

编辑:

请注意,我可以使用以下方式访问该文件并打印工作表的内容:

import gspread
gc = gspread.service_account(filename='A:/Documents/Python Projects/XYZ/mypythonproject-6b9fa9b18506.json')
sh = gc.open("TEST Data")
print(sh.sheet1.get('A1')) 

仅当我尝试使用 df2gspread 编辑和上传工作表时才出现错误

标签: pythonpandasdataframegoogle-sheetswrite

解决方案


我发现了问题并纠正了它。.gdrive_private 位于 C:/Users 文件夹下。我将其移至 C:/Users/XYZ 文件夹并更正了此问题。


推荐阅读