有没有办法在笔记本中存储机密/访问机密/密码?我有一个api端点,我从中提取数据,我不想将apiKey公开给每个可以查看笔记本的人。
答案 0 :(得分:4)
将您的凭据存储在JSON或YAML中,并让您的笔记本解析必要的部分。
import json
with open('credentials.json') as f:
data = json.load(f)
username = data['username']
password = data['password']
你应该避免在单元格输出中打印秘密,否则你选择的任何技术都会被挫败。
答案 1 :(得分:4)
cco's answer is good,但如果你正在寻找一个更简单的解决方案,很多人会使用环境变量来保密秘密与源代码隔离。
例如,您可以在shell中执行脚本时提供它们:
$ API_TOKEN=abc123 python script.py
在您的源代码中:
import os
API_TOKEN = os.environ.get("API_TOKEN")
对于您的Jupyter笔记本,您可以使用python-dotenv
或类似的包来“检索”#34;包含项目秘密的.env
文件,您的版本控制系统会忽略该文件。
一旦您创建了.env
文件(手动或使用the package's command line tool),就可以在Jupyter(或IPython)中使用python-dotenv
,如下所示:
%load_ext dotenv
%dotenv
import os
os.environ.get("API_TOKEN")
答案 2 :(得分:1)
答案 3 :(得分:0)
我使用了一段时间的最简单的解决方案。
使用getpass便携式密码输入模块。
import getpass
password = getpass.getpass('Enter your password')
print('Your password is: ' + password)