Salut, j'essaye d'apprendre le python. J'essaye d'obtenir le taux de change de USD en AUD. Mais j'ai du mal à accéder aux informations du JSON stockées dans les données. Comment puis-je obtenir "AUD": 1,4817 en "conversion_rates":
{ "result": "success", "documentation": "https://www.exchangerate-api.com/docs", "terms_of_use": "https://www.exchangerate-api.com/terms", "time_last_update_unix": 1585267200, "time_last_update_utc": "Fri, 27 Mar 2020 00:00:00 +0000", "time_next_update_unix": 1585353700, "time_next_update_utc": "Sat, 28 Mar 2020 00:00:00 +0000", "base_code": "USD", "conversion_rates": { "USD": 1, "AUD": 1.4817, "BGN": 1.7741, "CAD": 1.3168, "CHF": 0.9774, "CNY": 6.9454, "EGP": 15.7361, "EUR": 0.9013, "GBP": 0.7679, "...": 7.8536, "...": 1.3127, "...": 7.4722, etc. etc. } }
C'est ce qui est stocké dans les données
# Where USD is the base currency you want to use url = 'https://v6.exchangerate-api.com/v6/MY_API_KEY/latest/USD' # Making our request response = requests.get(url) data = response.json()
Merci
3 Réponses :
response.json()
renvoie les données json sous forme de dict
. Vous pouvez accéder à un dict via dict[key]
ou dict.get(key, default)
. Le premier lève une exception si la clé n'est pas trouvée. Le second retourne None par défaut si la clé n'est pas trouvée ou la valeur par défaut que vous avez donnée à get
-call.
Donc, dans votre cas, ce serait:
try: aud_conversion_rate = data['conversion_rates']['AUD'] except KeyError: print("Could not get the USD to AUD conversion rate")
ou par exemple
data.get('conversion_rates', default={}).get('AUD')
Vous voudrez probablement choisir la première opportunité et l'entourer d'un essai / attraper:
data['conversion_rates']['AUD']
Pour référence: https://docs.python.org/3/tutorial/datastructures.html#dictionaries
Merci probablement mieux j'essaye quelque chose comme ça
Vous pouvez simplement obtenir toutes les valeurs dont vous avez besoin par des clés.
converstion_rates = data['conversion_rates'] USD = converstion_rates['USD'] AUD = converstion_rates['AUD']
Veuillez consulter ce document: Données Python- Json
Cela a du sens car il s'agit d'un JSON imbriqué correct?
La réponse analysée à votre requête est un dictionnaire en python. Vous pouvez le voir comme l'impression est écrite avec des accolades. Un dictionnaire se compose de paires valeur / clé. Dans la sortie écrite, séparés par deux-points. Vous pouvez accéder à une entrée par indexation, comme suit:
data["conversion rates"]
Dans votre cas, c'est encore un dictionnaire. Alors procédez comme décrit.
Merci pour l'aide.
data['conversion_rates']['AUD']
Bonne journée @rdas j'ai essayé cela et j'ai obtenu cette exception aud lors de l'évaluation. Utilisation de cette aud = data ['conversion_rates'] ['AUD']
Nevermind merci mon problème était que j'essayais d'imprimer et j'ai oublié de le convertir en une chaîne