Tôi không thể tìm ra một vấn đề tôi đang gặp phải với mã được viết bằng Python 2.7. Tôi đang chuyển đổi các tham chiếu sang int, nhưng tôi tiếp tục nhận được một ngoại lệ loại bad operand type for unary +: 'str'
. Bất cứ ai có thể hỗ trợ?Loại toán hạng hạng nặng cho đơn nhất +: '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)
Tôi đánh các toán hạng ngoại lệ bad operand type for unary +: 'str'
khi nó được cho if int(splitLine[0]) > int(lastUnix):
mặc dù cả hai giá trị được so sánh in ra như ints khi thử nghiệm. bất cứ ai có thể cho tôi một số thông tin phản hồi? cảm ơn bạn!
đây là phản ứng ngoại lệ:
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'`
Không chỉ bắt ngoại lệ để in nó, bởi vì bạn mất dấu vết ngăn xếp! – Eric