2017-06-30 1 views
0

Ich bin neu in dieser Python-Welt, ich versuche, eine API zu verwenden, um grundlegende Währungsberechnungen durchzuführen. Ich kann die Ausgabe wie bekommen:Python-Währungsberechnung mit API JSON

{'USD': 1.13}

dieses aber ich will es nur

1.13

Der Code sein:

import requests 

inputCurrency = 'EUR' 
outputCurrency = 'USD' 

p = {"inpc":inputCurrency, "outc":outputCurrency} 

url = 'https://somewebsite/api/data' 

r = requests.get(url, params=p) 

print(r.json()) 
+0

Nun, werden wir nicht in der Lage sein * * erraten, was falsch läuft. Sie haben uns die aktuellen und erwarteten Ausgaben gegeben, was sehr nützlich ist, aber wir brauchen auch die * relevanten * Teile des Codes. Bitte bearbeiten Sie Ihre Frage! –

+0

Der gesamte Code wurde hinzugefügt! –

Antwort

1

Der Server ein JSON-Objekt zurückgegeben. Die .json() Methode Ihrer r Antwort dekodiert es und gibt das decodierte Objekt zurück, das ein Python dict ist.

Sie möchten den Wert, der dem Schlüssel 'USD' entspricht. Just do:

import requests 

inputCurrency = 'EUR' 
outputCurrency = 'USD' 

p = {"inpc":inputCurrency, "outc":outputCurrency} 

url = 'https://somewebsite/api/data' 

response = requests.get(url, params=p) 
json_data =response.json() 
print(json_data['USD']) 

Wenn die Struktur der Daten ist komplizierter, wie in Ihrem Kommentar:

data = json_data['data'] 

, die eine ist:

json_data = { "status": 1, "data": [ { "time": "2015-08-30T07:56:28.000Z", "usd": 1.17 }, { "time": "2015-08-30T08:56:28.000Z", "usd": 1.27 }, { "time": "2015-08-30T09:56:28.000Z", "usd": 1.28 }]} 

Sie den entsprechenden Teil extrahieren könnte Liste der Wörterbücher. Anschließend können Sie drucken die erste:

print(data[0]['usd']) 
# 1.27 

oder drucken sie alle:

for day_value in data: 
    print(day_value['usd']) 
+0

Danke! Das funktionierte, aber was ist mit der Anzeige mehrerer Ausgänge mit dem gleichen Namen wie: '{ " Status ": 1, " Daten ": [ { " Zeit ":" 2015-08-30T07: 56: 28.000Z ", "USD": 1,17 }, { "Zeit": "2015-08-30T08: 56: 28.000Z" "USD": 1.27 }, { "Zeit": „2015-08- 30T09: 56: 28.000Z ", " usd ": 1.28 } ....' –

+0

Bearbeitete die Antwort. –

+0

Das hat alles erklärt, nochmals vielen Dank! –