我正在尝试拆分从Interactive Broker的API的Python实现返回的字符串,但我一直得到:
AttributeError: 'TickPrice' object has no attribute 'split'
def my_price_handler(msg):
fields=msg.split()
print fields[0]
检查API代码和(1)msg是一个字符串,(2)'split'未在别处重新定义。 Msg字符串看起来像这个<Tick Price tickerId=1, field=1, price=74.0, canAutoExecute=1>
,可以直接打印到控制台。使用语法时出现相同的错误消息:
def my_price_handler(msg):
fields=string.split(msg)
print fields[0]
我在程序的顶部导入了字符串。
这是一个可变范围问题吗?
答案 0 :(得分:4)
显然,msg
在输入my_price_handler
时 不是字符串;它是TickPrice
。放
print(type(msg))
在split
致电之前说服自己这个事实。
(msg
可以打印的事实并不意味着它是一个字符串,如果这是你的想法。)
答案 1 :(得分:1)
TickPrice似乎是一个类。 msg是所述类的实例,它具有__repr__
方法,允许您print
到控制台,生成:
<Tick Price tickerId=1, field=1, price=74.0, canAutoExecute=1>