Плохой тип операнда для унарного +: 'str'

Я не могу понять проблему, которую я имею с кодом, написанным на Python 2.7. Я преобразовываю ссылки на ints, но я продолжаю получать тип bad operand type for unary +: 'str' типа исключения bad operand type for unary +: 'str' . Может ли кто-нибудь помочь?

 import urllib2 import time import datetime stocksToPull = 'EBAY', 'AAPL' def pullData(stock): try: print 'Currently pulling', stock print str(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/' + \ stock + '/chartdata;type=quote;range=3y/csv' saveFileLine = stock + '.txt' try: readExistingData = open(saveFileLine, 'r').read() splitExisting = readExistingData.split('\n') mostRecentLine = splitExisting[-2] lastUnix = mostRecentLine.split(',')[0] except Exception, e: print str(e) time.sleep(1) lastUnix = 0 saveFile = open(saveFileLine, 'a') sourceCode = urllib2.urlopen(urlToVisit).read() splitSource = sourceCode.split('\n') for eachLine in splitSource: if 'values' not in eachLine: splitLine = eachLine.split(',') if len(splitLine) == 6: if int(splitLine[0]) > int(lastUnix): lineToWrite = eachLine + '\n' saveFile.write(lineToWrite) saveFile.close() print 'Pulled', + stock print 'Sleeping....' print str(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) time.sleep(120) except Exception, e: print 'main loop', str(e) for eachStock in stocksToPull: pullData(eachStock) 

Я нажимаю на bad operand type for unary +: 'str' операнда исключений bad operand type for unary +: 'str' когда он получает, if int(splitLine[0]) > int(lastUnix): даже если оба значения сравниваются, распечатываются как ints при тестировании. может ли кто-нибудь дать мне некоторую обратную связь? Спасибо!

здесь есть ответ на исключение:

 Currently pulling EBAY 2013-12-21 11:32:40 Pulled main loop bad operand type for unary +: 'str' Currently pulling AAPL 2013-12-21 11:32:41 Pulled main loop bad operand type for unary +: 'str'` 

    2 Solutions collect form web for “Плохой тип операнда для унарного +: 'str'”

    Вы говорите, что if int(splitLine[0]) > int(lastUnix): вызывает проблемы, но вы на самом деле ничего не показываете, что наводит на это. Я думаю, что эта строка является проблемой:

     print 'Pulled', + stock 

    Вы видите, почему эта строка может вызвать это сообщение об ошибке? Вы хотите либо

     >>> stock = "AAAA" >>> print 'Pulled', stock Pulled AAAA 

    или

     >>> print 'Pulled ' + stock Pulled AAAA 

    не

     >>> print 'Pulled', + stock PulledTraceback (most recent call last): File "<ipython-input-5-7c26bb268609>", line 1, in <module> print 'Pulled', + stock TypeError: bad operand type for unary +: 'str' 

    Вы просите Python применить символ + к строке, например, +23 делает положительный 23, и она возражает.

    Код работает для меня. (после добавления отсутствующих инструкций except / import )

    Вы положили \ в исходный код?

     urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/' \ + stock + '/chartdata;type=quote;range=5d/csv' 

    Если вы опустите его, это может стать причиной исключения:

     >>> stock = 'GOOG' >>> urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/' >>> + stock + '/chartdata;type=quote;range=5d/csv' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: bad operand type for unary +: 'str' 

    BTW, string(e) должна быть str(e) .

    Python - лучший язык программирования в мире.