2016-06-28 8 views
0

Ich versuche, ein kleines Projekt mit Python zu tun TD Ameritrade API zu verwenden. In der API-Anweisung von TD, sagt es die Anforderungs-URL für Preisverlauf ist:Python Anfrage Antwort (binär)

https://apis.tdameritrade.com/apps/100/PriceHistory?source=##SourceID#> & startdate = & enddate = & request = & intervaltype = & PERIOD = & erweitert = & intervalduration = & Periode = & requestidentifiertype = Of Natürlich muss ich die SourceID durch meine eigene SourceID ersetzen.

00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A:

und die Antwort gemäß dem Beispiel Hand ist 47 0F C6 14 00 00 01 16 6A E0 68 80 41 93 B4 05 41 97 1E B8 41 90 7A E1 41 96 8F 57 46 E6 2E 80 00 00 01 16 7A 53 7C 80 FF FF

Ein weiterer Tabelle wird auch beigefügt, um die Bedeutung jeder Zahl oben zu interpretieren. So

schrieb ich mein Programm wie folgt aus:

EOR_url = (the above URL, omitted here) 
r = request.get(EOD_url) 
print r.content 

er nichts auszudrucken. Wie kann ich die Antwort wie in der obigen Tabelle gezeigt oder ausdrucken? Ich glaube, ich verstehe das Antwortobjekt noch nicht ganz.

Dank

Antwort

-1

Vielleicht sollten Sie überprüfen, ob etwas tatsächlich gibt die Erhaltungs-Anforderung. Sie können Postmaster oder Advanced Rest Client verwenden, um die Anforderung GET auszuführen und die Antwort auszuchecken. Ich vermute, dies zu tun wird erleuchten, was tatsächlich stattfindet. Wenn Sie dies bereits getan haben, können Sie mir mitteilen, was die Antwort ist?

Aus meiner Erfahrung mit dem requests Modul ist es ziemlich zuverlässig beim Erfassen der Antworten.

0

Update:

EOR_url = (the above URL, omitted here) 
r = request.get(EOR_url) 
h = binascii.b2a_hex(r.content) 
print h 

jetzt ist es Ergebnisse wie die in der TD-API-Anweisung gegeben Ausdrucke:

00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47 0F C6 14 00 00 01 16 6A E0 68 80 41 93 B4 05 41 97 1E B8 41 90 7A E1 41 96 8F 57 46 E6 2E 80 00 00 01 16 7A 53 7C 80 FF FF

Die Anweisung sagt: 00 00 00 01, 4 Bytes, Symbol Anzahl ist 1 00 04, 2 Bytes, Symbol Länge ist 4 41 4D 54 44, 4 Bytes, Symbol ist AMTD 00, 1 Byte, Fehlercode ist 0 (OK) 00 00 00 02, 4 Bytes, Bar Anzahl ist 2 41 97 33 33, 4 Bytes, Schließen ist 18.90 41 99 5C 29, 4 Byte, Hoch ist 19.17 41 90 3D 71, 4 Byte , Niedrig ist 18.03 41 91 D7 0A, 4 Bytes, Offen ist 18.23 47 0F C6 14, 4 Byte, Volumen ist 3,680,608 ...... FF FF, 2 Bytes, Terminator

Also meine Frage ist jetzt, wie man den Inhalt des Response-Objekts in reelle Zahlen entsprechend der Anweisung umwandelt?

Wie konvertiert man das Ergebnis in reelle Zahlen?

danke