.envファイルに名前=値という形式で環境変数を記述したい
やりたいこと
.env
という名前のファイルに名前=値という形式で環境変数を記述したいのですがどうすればいいでしょうか?
記述する内容はツイッターAPIのキーです。
CONSUMER_KEY=。。。。。。
CONSUMER_SECRET=。。。。。。。
ACCESS_TOKEN=。。。。。。。。
ACCESS_TOKEN_SECRET=。。。。。。。
という形式です。
osはMac、エディタはAtomです。
経緯
下のファイルの CONSUMER_KEY = os.environ['CONSUMER_KEY']
の所の os.environ
を使って環境変数からキーを読み込みたいです。
スクリプトの実行時に環境変数を渡すためにforegoというツールを使って $ forgo run
を先頭につけて実行します。
こうすることでforegoがカレントディレクトリに存在する .env
という名前のファイルから環境変数を読み取ってプログラムに渡してくれるように動作させたいです。
import os
from requests_oauthlib import OAuth1Session
#環境変数から認証情報を取得
CONSUMER_KEY = os.environ['CONSUMER_KEY']
CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
ACCESS_TOKEN = os.environ['ACCESS_TOKEN']
ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET']
#認証情報を使ってOAuth1Sessionオブジェクトを作る
twitter = OAuth1Session(CONSUMER_KEY,
client_secret=CONSUMER_SECRET,
resource_owner_key=ACCESS_TOKEN,
resource_owner_secret=ACCESS_TOKEN_SECRET)
#ユーザーのタイムラインを取得
response = twitter.get('https://api.twitter.com/1.1/statuses/home_timeline.json')
#APIのレスポンスはjson形式の文字列なので、response.json()でパースしてlistを取得する。
#statusはツイートを表すdict
for status in response.json():
print('@' + status['user']['screen_name'], status['text']) #ユーザー名とツイートを表示する。
参照:pythonクローリング&スクレイピング