连接到 gsheets:通常的方法是在gc = pygsheets.authorize()
与creds.json
脚本相同的根文件夹中运行文件gsheets.py
(下面的文件夹结构)
├── creds.json
├── gsheets.py
想使用service_account_env_var
而不是使用 json 文件
creds.json 文件如下所示:
{
"token": null,
"refresh_token": "token",
"id_token": null,
"token_uri": "token_uri",
"client_id": "client_id.apps.googleusercontent.com",
"client_secret": "secret"
}
如何使用 json 文件中的凭据创建 .env 文件?
根据 pygsheets 文档: pygsheets - 环境变量
这假设您已设置环境变量键 GDRIVE_API_CREDENTIALS 设置为上述服务帐户部分中描述的服务帐户 .json 文件的值。
不幸的是,没有关于如何设置环境变量的指导。我的思路是:
创建 .env 文件(我真的不确定如何以 env 文件格式表达 json,因此将各个键:值对包装在 {}...):
# .env
GDRIVE_API_CREDENTIALS = {
token = null
refresh_token = token
id_token = null
token_uri = token_uri
client_id = client_id.apps.googleusercontent.com
client_secret = secret }
创建一个settings.py:
# settings.py
from dotenv import load_dotenv
load_dotenv()
import os
creds = os.getenv('GDRIVE_API_CREDENTIALS')
pygsheets.authorize(service_account_env_var = creds)
当 creds 作为 arg 提供给service_account_env_var