2025年5月3日 星期六

Python 學習筆記 : dotenv 取值的另類用法

在使用 API 服務時, 為了避免在分享程式碼時疏忽洩漏 API 的金鑰 (key) 或權杖 (token), 通常會使用 dotenv 或 decouple 等第三方套件來載入環境變數檔 .env (特定的系統檔案) 並取得其內容 (在 Colab 平台上則是使用其 userdata 來讀取存在 Secrets 中的密鑰), 用法參考 : 


我比較常用 dotenv, 呼叫 dotenv.load_env() 後, 使用內建模組 os 的 environ.get() 函式即可取得指定名稱之密鑰 : 

from dotenv import load_dotenv  
import os 

load_dotenv()     
openai_api_key=os.environ.get('OPENAI_API')

今天在 "LangChain 奇幻旅程" 這本書看到另一種用法, 改用 dotenv.dotenv_values() 函式載入 .env 的內容, 此函式會傳回一個類似 JSON 格式的 OrderedDict 物件, 只要呼叫字典物件的 get() 方法即可取得密鑰之值, 不需要匯入 os 模組 :

>>> from dotenv import dotenv_values  
>>> config=dotenv_values('.env')    
>>> type(config)    
<class 'collections.OrderedDict'>     
>>> openai_api_key=config.get('OPENAI_API')    
>>> openai_api_key   
'我的 OpenAI API key'

沒有留言 :