2016/08/26更新

[Python] YQL(Yahooファイナンス)を用いて現在の為替レートをAPI経由で取得する

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
ちょっとしたサービスを作る際に為替レートの取得が必要だったので、調べてみたらYQLという仕組みでとれることがわかったので、ブログに書きたいと思います。

画像

目次




YQLとは

YQLとはYahoo Query Languageの略で、SQLライクな言語でWebやYahoo上のデータを取得することができる仕組みです。
The YQL (Yahoo! Query Language) platform enables you to query, filter, and combine data across the web through a single interface. It exposes a SQL-like syntax that is both familiar to developers and expressive enough for getting the right data.
API経由でも利用することが可能で、今回はそれを使って為替レートを取得します。



YQLを使って為替レートをAPI経由で取得する

それでは早速ですた、YQLを用いた為替レートの取得です。実装例はPythonですが他の言語でももちろん利用可能です。
import urllib.request
import urllib.parse
import json
from pprint import pprint

# YQLをAPI経由で利用します
url = "https://query.yahooapis.com/v1/public/yql"
params = {
    "q": 'select * from yahoo.finance.xchange where pair in ("USDJPY")',
    "format": "json",
    "env": "store://datatables.org/alltableswithkeys"
}
url += "?" + urllib.parse.urlencode(params)
res = urllib.request.urlopen(url)

# 結果はJSON形式で受け取ることができます
result = json.loads(res.read().decode('utf-8'))
pprint(result)
"""
{'query': {'count': 1,
           'created': '2016-08-22T02:57:07Z',
           'lang': 'en-US',
           'results': {'rate': {'Ask': '100.6850',
                                'Bid': '100.6380',
                                'Date': '8/21/2016',
                                'Name': 'USD/JPY',
                                'Rate': '100.6380',
                                'Time': '10:58pm',
                                'id': 'USDJPY'}}}}
"""

# その中から必要な情報(今回はUSD→JPYの為替レート)を取得します
rate = result["query"]["results"]["rate"]["Rate"]
print('USD/JPY:', rate)
# USD/JPY: 100.6380
と、こんな感じで簡単に取得できました。とても便利ですね!



参考資料

今回の機能を利用するために、以下の資料を参照しました。ありがとうございます。

YQLを使ってYahoo! Financeから為替レートを取得する - Qiita

yql-tables/yahoo.finance.xchange.xml at master · yql/yql-tables(実際に利用するテーブル定義です)

How do I get currency exchange rates via an API such as Google Finance? - Stack Overflow



最後に

YQLというものは聞いたことはあったんですが使うのははじめてでした。なかなか便利ですね。もう少し詳細を押さえてみたいところです。

最後になりますが本ブログでは、Python・フロントエンド・開発関連・Swift・Linux・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。