python - 使用 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 编辑和上传工作表时才出现错误
解决方案
我发现了问题并纠正了它。.gdrive_private 位于 C:/Users 文件夹下。我将其移至 C:/Users/XYZ 文件夹并更正了此问题。
推荐阅读
- c# - Unity中获取子对象复制父对象的动画
- ruby-on-rails - 升级到 Rails 5.2.2 时出现 Railties 兼容性问题
- angular - 将属性/事件绑定到 Angular 中的内容子项
- r - 如何在 R 中验证 OData 连接
- php - 在 Laravel、Cashier 和 Stripe 中收到未知参数
- hash - 可以用 hashcat 破解 cntlm 哈希吗?
- javascript - 带有数据表 jquery 的 tabledit
- spring - 具有不同服务类的 Spring Boot 测试
- php - 如何忽略 pic 列中所有为空的字段?
- php - 在 docker php 7.3 上启用 APCU CLI