我试图在木星笔记本中使用pyghsheets,但我无法让它工作,而同一段代码在ipython中工作得很好。
from pathlib import Path
import pygsheets
creds = Path(r"/path/to/client_secret.json")
gc = pygsheets.authorize(client_secret=creds)
book = gc.open_by_key("__key__of__sheet__")
wks = book.worksheet_by_title("Sheet1")
wks.clear(start="A2")当从ipython内部调用时,每件事情都可以正常工作,而在木星笔记本中,我得到的是
RefreshError: ('invalid_grant: Token has been expired or revoked.', {'error': 'invalid_grant', 'error_description': 'Token has been expired or revoked.'})我在同一个conda环境中运行这两个部分。任何关于如何缩小问题(和解决方案)的建议都是非常欢迎的!
发布于 2021-12-13 09:22:58
事实证明,我的木星笔记本的当前工作目录与我普通的ipython不一样。现在,pygsheets在当前工作目录中存储用于与Google进行身份验证的令牌。如果该目录中的.json文件无效,身份验证将失败。
您可以添加一个参数credentials_directory=...来指定以前验证过的令牌文件。
我最终得到的解决方案是
gc = pygsheets.authorize(client_secret=creds, credentials_directory=creds.parent)这样,令牌和凭据文件就在同一个目录中。
https://stackoverflow.com/questions/70330934
复制相似问题