Pythonでリアルタイムの為替レートを取得する方法【初心者向け】
PythonはAPI呼び出しの処理が非常に得意なプログラミング言語です。本記事では、通貨の為替レートをリアルタイムで取得する方法と、過去(ヒストリカル)データを取得する方法について、具体的なコード例とともにわかりやすく解説します。
forex-pythonライブラリを使う方法
「forex-python」は、通貨換算レートを最も手軽に取得できるPythonライブラリの一つです。必要な通貨コードを引数として渡すだけで、変換結果を簡単に取得できます。以下の例では、現在のリアルタイム為替レートを取得しています。
サンプルコード
from forex_python.converter import CurrencyRates
c = CurrencyRates()
print(c.get_rate('USD', 'GBP'))実行結果
上記のコードを実行すると、以下のような結果が得られます。
0.7357387755
この例では、1米ドル(USD)あたり約0.7357英ポンド(GBP)というレートが出力されています。
過去の為替レートを取得する
datetimeモジュールで作成した日時オブジェクトを引数に追加することで、特定の日付・時刻における為替レートを取得することも可能です。以下の例では、2020年3月27日11時21分時点におけるUSDからINR(インドルピー)へのレートを取得しています。
サンプルコード
from forex_python.converter import CurrencyRates
import datetime
c = CurrencyRates()
dt = datetime.datetime(2020, 3, 27, 11, 21, 13, 114505)
print(c.get_rate('USD', 'INR', dt))実行結果
上記のコードを実行すると、以下のような結果が得られます。
75.4937596793
Web APIを使う方法
APIキーを使ってリクエストを送信すると、JSON形式で為替レートを返してくれるWeb APIも数多く提供されています。取得したJSONデータは、リストに変換したり、必要に応じて整形したりすることで、さらに柔軟に活用できます。以下は「ExchangeRate-API」を使用した例です。
サンプルコード
import requests # USDを基準通貨として指定 url = 'https://v6.exchangerate-api.com/v6/336ccxxxxxxxxx8e74eac/latest/USD' # リクエストを送信 response = requests.get(url) data = response.json() # JSONオブジェクトを出力 print(data)
実行結果
上記のコードを実行すると、以下のようなJSON形式の結果が得られます。
{'result': 'success', 'documentation': 'https://www.exchangerate-api.com/docs', 'terms_of_use': 'https://www.exchangerate-api.com/terms', 'time_last_update_unix': 1610323201, 'time_last_update_utc': 'Mon, 11 Jan 2021 00:00:01 +0000', 'time_next_update_unix': 1610409616, 'time_next_update_utc': 'Tue, 12 Jan 2021 00:00:16 +0000', 'base_code': 'USD', 'conversion_rates': {'USD': 1, 'AED': 3.6725, ………., 'XOF': 536.3826, 'XPF': 97.579, 'YER': 250.1264, 'ZAR': 15.2899, 'ZMW': 21.1561}}まとめ
Pythonでは、「forex-python」ライブラリを使えばシンプルなコードで現在および過去の為替レートを取得できます。また、requestsライブラリと組み合わせれば、各種Web APIからも柔軟にデータを取得可能です。用途や取得したいデータの種類に応じて、最適な方法を選択してみてください。
-
Pythonでローカルタイムゾーン(UTCオフセット)を取得する方法
コンピュータのUTCオフセットとは、そのコンピュータに設定されているタイムゾーンのことです。Pythonでは、標準ライブラリのtimeモジュールを使うことで、このタイムゾーン情報を簡単に取得できます。time.timezoneは、UTCからのオフセットを秒単位で返します。 timeモジュールを使う方法 import time print(-time.timezone) # インドのタイムゾーン: +5:30 の場合 出力 19800 time.timezoneは西回りのオフセットを正の値として返すため、通常は先頭にマイナスを付けて使用します。上記の例では、インド標準時(UTC+5:30)に相
-
Pythonでコードの実行時間を計測する方法を解説
Pythonでプログラムの実行時間を測定したい場合、timeモジュールの関数を利用できます。また、より正確なベンチマークを行いたい場合には、Python公式ドキュメントでも推奨されているtimeitモジュールを使用するのが良いでしょう。 timeモジュールを使った基本的な計測方法 処理の開始前と終了後に時刻を取得し、その差分から経過時間を算出するのが基本的な方法です。 例 import time t0 = time.clock() print(Hello) t1 = time.clock() - t0 print(Time elapsed: , t1 - t0) # 経過したCPU秒数(