Je souhaite obtenir une réponse JSON ou XML avec la chronologie des taux de change, par exemple du 2015-01-07 au 2015-03-07.
Avec cette réponse , nous ne pouvons obtenir que les dernières informations sur les taux de change des devises choisies.
Ici nous pouvons obtenir les taux de change pour certaines dates en utilisant l'URL: http://finance.yahoo.com/connection/currency-converter-cache?date=20150307 et analyser le JSON obtenu pour certaines devises.
Mais je dois obtenir les taux de change pour la plage de dates telle qu'elle est ici mais au format JSON ou XML.
Y-a-t-il un moyen de faire ça?
Utilisez YQL ( https://developer.yahoo.com/yql/ )
Ensuite, vous pouvez récupérer les données dont vous avez besoin avec une requête comme celle-ci:
SELECT *
FROM
yahoo.finance.historicaldata
WHERE
symbol = "EUR=X"
AND
startDate = "2009-09-11"
AND
endDate = "2010-03-10"
Voici une solution pour obtenir vos données dans un DataFrame pandas. Vous pouvez ensuite exporter du DataFrame au format JSON, XML, etc. à l’aide de fonctions telles que pandas.DataFrame.to_json.
Les symboles peuvent également être différents de ceux que vous utilisez.
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
Vous devrez installer pandas-datareader. (Je suppose que vous avez déjà des pandas).
Sudo -H pip install pandas-datareader (ubuntu)
pip install pandas-datareader (windows)
L'API Yahoo ne fonctionne plus, mais il existe d'autres API qui fournissent des données monétaires au format JSON. FXMarketAPI est la seule API qui offre une API compatible Pandas qui fournit des données historiques au format JSON. Il existe un point final de pandas qui vous aide à extraire des données. Bien qu'il y ait une limite de 1000 demandes pour les utilisateurs gratuits. vous pouvez voir un exemple ci-dessous.
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)
n'oubliez pas d'accéder à api_key et d'ajouter à la requête ci-dessus.