2015-07-20 2 views
0

Я извлекаю данные из Y!F с использованием модуля yahoo_finance. A тип ошибки:Python, объект, не поддерживающий индексирование

'Share' object does not support indexing

происходит.

Любые идеи?

import yahoo_finance 
from yahoo_finance import Share 

class ticker(object): 
    def __init__(self, symbol): 

     self.price = symbol.get_price() 
     self.change = symbol.get_change() 
     self.volume = symbol.get_volume() 

symbol = ['GOOG','AAPL','MSFT'] 

lenSymbol = len(symbol) 
cc = 0 

while cc < lenSymbol: 
    stringSymb = symbol[cc] 
    symbol = Share(stringSymb) #TypeError occurring here 
    c = ticker(symbol) 
    output = ([c.volume, c.price, c.change, c.volume]) 
    print (output) 
    cc += 1 
+0

Просьба представить * полный * обратное прослеживание, а не только последнюю строку. –

+0

Я бы сказал, что проблема заключается в том, чтобы затенять список 'symbol = ['GOOG', ...]' с символом 'Share'' symbol = Share (...) '... – jonrsharpe

ответ

0

Вы используете symbol дважды:

symbol = ['GOOG','AAPL','MSFT'] 

И в петле:

symbol = Share(stringSymb) 

кажется, что Share из yahoo_finance не поддерживает индексацию.

Попробуйте изменить его на следующее:

import yahoo_finance 
from yahoo_finance import Share 

class ticker(object): 
    def __init__(self, symbol): 
     self.price = symbol.get_price() 
     self.change = symbol.get_change() 
     self.volume = symbol.get_volume() 

symbols = ['GOOG','AAPL','MSFT'] 

cc = 0 
while cc < len(symbols): 
    stringSymb = symbols[cc] 
    symbol = Share(stringSymb) 
    c = ticker(symbol) 
    output = ([c.volume, c.price, c.change, c.volume]) 
    print (output) 
    cc += 1 

Выход:

['11164943', '672.93', '+93.08', '11164943'] 
['46164710', '129.62', '+1.11', '46164710'] 
['29467107', '46.62', '-0.04', '29467107'] 
1

Вы переназначение список symbol для:

symbol = Share(stringSymb) 

то следующий цикл, вы пытаетесь индексировать symbol

stringSymb = symbol[cc] 

И как ошибочные состояния, в Share объект, который переназначен symbol, не поддерживает индексацию.

Смежные вопросы