Ich mag den folgenden OpenFIGI API-Befehl in Python konvertieren:Convert Curl mit zwei Kopf Python
curl ‐v ‐X POST 'https://api.openfigi.com/v1/mapping'
‐‐header 'Content‐Type: text/json'
‐‐header 'X‐OPENFIGI‐APIKEY: abcdefghijklmnopqrstuvwxyz'
‐‐data '[{"idType":"ID_WERTPAPIER","idValue":"851399"}]'
Ich konnte es ohne den X-OPENFIGI-APIKEY funktioniert, kann aber nicht einen Weg finden, Sende mit beiden Headern.
Hier ist meine Arbeitscode:
import requests
data = [{"idType":"TICKER","idValue":"AAPL","exchCode":"US"}]
headers={"Content-Type": "text/json"}
r=requests.post('https://api.openfigi.com/v1/mapping',headers=headers,json=data)
aber einschließlich der API-Schlüssel, die ihm einen Code ‚400‘ zurückgibt, die openfigi nach ist für ‚Der Antrag Körper kein Array ist.‘
headers={"Content-Type": "text/json",'X‐OPENFIGI‐APIKEY' : var_key }
r=requests.post('https://api.openfigi.com/v1/mapping',headers=headers,json=data)
Würde jemand eine Idee haben, warum es nicht funktioniert? Fehle ich etwas? Vielen Dank für Ihre Hilfe.
- EDIT -
Es scheint, dass das Problem von der Codierung der kommt - selbst in der Taste ‚‘.
data = [{"idType":"TICKER","idValue":"AAPL","exchCode":"US"}]
h1= {"Content-Type": "text/json","X_OPENFIGI_APIKEY" : "11111‐2222‐XXXX‐5555‐AAAAAAAA" }
r=requests.post('https://api.openfigi.com/v1/mapping',headers=h1,data=json.dump(data))
r.request.headers
Der obige Code 'X-OPENFIGI-APIKEY' zeigt: '11111 \ XE2 \ x80 \ x902222 \ XE2 \ x80 \ x90XXXX \ XE2 \ x80 \ x905555 \ XE2 \ x80 \ x90AAAAAAAA' in der Anforderungsheader .
Ich denke, es sollte "X-OPENFIGI-APIKEY": "11111-XXXX-5555-AAAAAAAAA" sein.
Gibt es eine Möglichkeit, meine requests.post Parameter zu ändern, um '-' anzuzeigen? Danke.
Haben Sie versucht, den Json manuell zu konvertieren? Anstelle von 'json = data' vielleicht' data = json.dumps (data) ' – Shaun
Es sieht so aus, als ob Ihr curl-Befehl nicht" exchCode ":" US "sendet, aber Ihr Anfrage-Code tut es. –
Ich versuchte mit 'data = json.dumps (Daten)' und leider gibt es mir immer noch Code 400. Das Problem scheint mit der Art, wie ich den API-Schlüssel übergeben, aber kann nicht verstehen, warum genau ... – CarlosM