使用 python 连接并上传到 Google 表格
Posted
技术标签:
【中文标题】使用 python 连接并上传到 Google 表格【英文标题】:Connecting and Uploading to Google Sheets using python 【发布时间】:2020-12-31 14:41:49 【问题描述】:我正在尝试按照link 中的说明将 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 编辑和上传工作表时才出现错误
【问题讨论】:
.gdrive_private
存在吗?
是的。它存在于 c:/Users/xyz
【参考方案1】:
我发现了问题并纠正了它。 .gdrive_private 位于 C:/Users 文件夹下。我将其移至 C:/Users/XYZ 文件夹并更正了此问题。
【讨论】:
以上是关于使用 python 连接并上传到 Google 表格的主要内容,如果未能解决你的问题,请参考以下文章
将 Google Drive 挂载到 Python Colab 错误
使用Python和Flask上传到Google云端硬盘时,文件大小为零
Python - 将文件上传到Google Team Drive
Google BigQuery:如何使用 gsutil 删除或覆盖表?