在Jupyter笔记本中存储密码

时间:2017-07-06 23:47:31

标签: python jupyter

有没有办法在笔记本中存储机密/访问机密/密码?我有一个api端点,我从中提取数据,我不想将apiKey公开给每个可以查看笔记本的人。

4 个答案:

答案 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)

您可以使用keyring包将敏感信息存储在系统特定的受保护商店中 它可以通过pypipip安装。

答案 3 :(得分:0)

我使用了一段时间的最简单的解决方案。

使用getpass便携式密码输入模块。

import getpass

password = getpass.getpass('Enter your password')

print('Your password is: ' + password)