有没有办法在笔记本中存储机密/访问机密/密码?我有一个api端点,可以从中提取数据,而且我不想将apiKey公开给所有可以查看笔记本的人。
Sil*_*vee 13
我已经使用了一段时间的最简单的解决方案。
使用getpass便携式密码输入模块。
import getpass
password = getpass.getpass('Enter your password')
print('Your password is: ' + password)
Run Code Online (Sandbox Code Playgroud)
将您的凭据存储在JSON或YAML中,并让您的笔记本解析必要的部分。
import json
with open('credentials.json') as f:
data = json.load(f)
username = data['username']
password = data['password']
Run Code Online (Sandbox Code Playgroud)
您应该避免在单元输出中打印秘密,否则您选择的任何技术都会被挫败。
cco 的回答很好,但如果您正在寻找更简单的解决方案,许多人会使用环境变量来将秘密与源代码隔离开来。
例如,您可以在 shell 中执行脚本时提供它们:
$ API_TOKEN=abc123 python script.py
Run Code Online (Sandbox Code Playgroud)
在您的源代码中:
import os
API_TOKEN = os.environ.get("API_TOKEN")
Run Code Online (Sandbox Code Playgroud)
对于您的 Jupyter 笔记本,您可以使用python-dotenv或类似的包来“检索”.env包含项目机密且被版本控制系统忽略的文件。
创建.env文件后(手动或使用包的命令行工具),您可以python-dotenv像这样在 Jupyter(或 IPython)中使用:
%load_ext dotenv
%dotenv
import os
os.environ.get("API_TOKEN")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6558 次 |
| 最近记录: |