Python代码不断给我以下错误...."主循环无法连接' str'和'元组'对象"

时间:2014-08-12 18:26:50

标签: python string tuples stocks

我一直在尝试运行以下代码,但已广泛查看了堆栈交换和Google,但无法找到此代码一直给出以下错误的原因。

main loop cannot concatenate 'str' and 'tuple' objects

我在Ubuntu上使用Python 2.7.6版。

>>> print (sys.version)
2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2]

非常感谢任何帮助。提前致谢。

import urllib2
import time

stocksToPull ='AAPL','GOOG','MSFT','CMG','AMZN','EBAY','TSLA'

def pullData(stock):
    try:
        fileLine = stock+'.txt'
        urlToVisit = 'http://ichart.finance.yahoo.com/table.csv?s='+stocksToPull
        print urlToVisit
        sourceCode = urllib2.urlopen(urlToVisit).read()
        splitSource = sourceCode.split('\n')

        for eachLine in splitSource:
            splitLine = eachLine.split(',')
            if len(splitLine)==7:
                if 'value' not in eachLine:
                    saveFile = open(fileLine,'a')
                    lineToWrite = eachLine+'\n'
                    saveFile.write(lineToWrite)

        print 'Pulled',stocksToPull
        print 'sleeping'
        time.sleep(1)


    except Exception,e:
        print 'main loop',str(e)

for eachStock in stocksToPull:
    pullData('eachStock')

3 个答案:

答案 0 :(得分:1)

您无法将stocksToPull ='AAPL','GOOG','MSFT','CMG','AMZN','EBAY','TSLA'添加到'http://ichart.finance.yahoo.com/table.csv?s='。您正在尝试将元组stocksToPull添加到字符串中。也许你的意思是

urlToVisit = 'http://ichart.finance.yahoo.com/table.csv?s='+stock

答案 1 :(得分:0)

问题是

urlToVisit = 'http://ichart.finance.yahoo.com/table.csv?s='+stocksToPull

您正在尝试将元组直接连接到字符串。你需要做一些像

这样的事情
urlToVisit = 'http://ichart.finance.yahoo.com/table.csv?s=' + stock

代替。

从文体上来说,按照你的方式捕捉和打印错误也会使问题变得模糊,因为你正在压制堆栈跟踪,告诉你实际发生问题的行号。

编辑:感谢@ chill0r的评论,我看到你正在使用元组stocksToPull而不是函数变量stock,这就是你的意思。更新了答案以反映出来。

答案 2 :(得分:0)

urlToVisit = 'http://ichart.finance.yahoo.com/table.csv?s='+stocksToPull

stocksToPull变量是一个字符串元组。您无法将URL字符串与元组连接起来。