たとえば、2015年1月7日から2015年3月7日までの為替レートの時系列でJSONまたはXML応答を取得する必要があります。
この回答 を使用すると、選択した通貨の為替レートに関する最新情報を取得できます。
ここ URLを使用して特定の日付の為替レートを取得できます: http://finance.yahoo.com/connection/currency-converter-cache?date=20150307 特定の通貨について取得したJSONを解析します。
しかし、日付範囲の通貨為替レートをそのまま取得する必要があります ここ ですが、JSONまたはXML形式です。
それを行う方法はありますか?
YQLを使用( https://developer.yahoo.com/yql/ )
次に、次のようなクエリで必要なデータを取得できます。
SELECT *
FROM
yahoo.finance.historicaldata
WHERE
symbol = "EUR=X"
AND
startDate = "2009-09-11"
AND
endDate = "2010-03-10"
以下は、データをpandas DataFrameに取得するためのソリューションです。その後、pandas.DataFrame.to_jsonなどの関数を使用して、DataFrameからJSON、XMLなどにエクスポートできます。
シンボルは、使用しているものと異なる場合もあります。
import pandas as pd
import pandas_datareader.data as web
from datetime import datetime
start = datetime(2016, 1, 1)
end = datetime(2017, 3, 31)
aud = web.DataReader('AUD=X', 'yahoo', start, end)
In [29]: aud.head(5)
Out[29]:
Open High Low Close Volume Adj Close
Date
2016-01-01 1.3752 1.3752 1.3752 1.3752 0 1.3752
2016-01-04 1.3725 1.3950 1.3712 1.3723 0 1.3723
2016-01-05 1.3921 1.4017 1.3857 1.3916 0 1.3916
2016-01-06 1.3963 1.4168 1.3941 1.3961 0 1.3961
2016-01-07 1.4124 1.4322 1.4109 1.4124 0 1.4124
Pandas-datareaderをインストールする必要があります。 (私はあなたがすでにパンダを持っていると仮定しています)。
Sudo -H pip install pandas-datareader (ubuntu)
pip install pandas-datareader (windows)
Yahoo APIはもう機能しませんが、JSON形式で通貨データを提供する他のAPIがあります。 FXMarketAPI は、JSON形式で履歴データを提供するPandas互換性のあるAPIを提供する唯一のAPIです。pandasエンドポイントがあります無料のユーザーのリクエスト数は1000に制限されていますが、以下の例をご覧ください。
URL = "https://fxmarketapi.com/apipandas"
params = {'currency' : 'EURUSD',
'start_date' : '2018-07-02',
'end_date':'2018-12-06',
'api_key':'**************'}
response = requests.get("https://fxmarketapi.com/apipandas", params=params)
df= pd.read_json(response.text)
api_keyへのアクセスを取得し、上記のリクエストに追加することを忘れないでください。