如何从类返回特定结果



我有一个正在打印的类"contractDetails"。我想从中获得特定结果(第 5 个元素(。

这是代码:

from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.common import *
from ibapi.contract import *
class TestApp(EWrapper, EClient):
def __init__(self):
EWrapper.__init__(self)
EClient.__init__(self, self)
def contractDetails(self, reqId, contractDetails):
print(contractDetails)
def start(self):
contract = Contract()
contract.symbol = 'AAPL'
contract.secType = 'OPT'
contract.currency = 'USD'
contract.exchange = 'SMART'
contract.lastTradeDateOrContractMonth = '202011'
self.reqContractDetails(1, contract)
def stop(self):
self.done=True
self.disconnect()
def main():
app = TestApp()
app.nextOrderId = 0
app.connect('127.0.0.1',7497,101)
app.run()
if __name__ == "__main__":
main()

我得到这样的东西:

423554420,AAPL,OPT,20201120,450.0,P,100,SMART...

我只想打印那里的第 5 个元素,即"450.0"。(行使价(

我试过了

print(contractDetails[5])

但是我收到一个错误"类型错误:'合同详细信息'对象不可下标">

例如,我可以单独使用"contractDetails.underSymbol"打印其他的。但是浏览列表(https://interactivebrokers.github.io/tws-api/classIBApi_1_1ContractDetails.html(并尝试所有列表都没有给我想要的那个。

据我了解,这是一个使用"contract.strike"传递给合约的值,当没有提供任何值时,它会打印出所有可用行使价的列表。

编辑:从评论...."合同详细信息.合同.罢工"工作。

如果合约详情不是列表,可以尝试使用list()将合约详情转换为列表或者尝试以下 apporch,

j=0
for i in range contractDetails:
if j==4:
print(i)
j+=1

相关内容

  • 没有找到相关文章

最新更新