使用Python在Interactive Brokers中获取列表中的permID

时间:2019-07-08 15:50:04

标签: python

此代码:

open_trades = ib.trades() #Interactive Brokers function
for i in range(0,len(open_trades)):
     print(open_trades[i].orderStatus

打印OrderStatus(status ='Submitted',其余= 1000.0, permId = 1036207528,clientId = 1)

现在如何获取 permID

答案应该看起来像这样(我也尝试了许多其他事情):

open_trades[i].orderStatus.permID #no attribute error
open_trades[i].orderStatus.OrderStatus.permID #no attribute error
open_trades[i].orderStatus[0].permID #gets error 'OrderStatus' object does not support indexing

最后一次尝试最有可能是得到错误的最接近答案:

  

'OrderStatus'对象不支持索引

1 个答案:

答案 0 :(得分:1)

您正在苦苦挣扎的问题与Python中对象的__str__实现有关(请参见this question)。

对象可以实现自定义__str__方法,因此可以打印对象的字符串表示形式。但是,这可能会造成混淆,因为它不一定对应于对象的结构(及其属性)。

不知道使用什么库(MCVE会很方便),我建议检查调试器下可用的方法和对象变量,然后使用它们访问所需的属性。