Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 主回路';内置函数或方法';对象是不可编辑的_Python_Built In_Iterable - Fatal编程技术网

Python 主回路';内置函数或方法';对象是不可编辑的

Python 主回路';内置函数或方法';对象是不可编辑的,python,built-in,iterable,Python,Built In,Iterable,当我运行下面的代码时,我得到这个错误“main loop'builtin\u function\u或\u method'object not iterable”: 我已经找到了答案,但是找不到我问题的答案 我已经检查了打字错误,但找不到任何错误。请帮帮我 import urllib2 import time import datetime stocksToPull = 'AAPL','GOOG','MSFT','CMG','AMZN','EBAY','TSLA' def pullData(s

当我运行下面的代码时,我得到这个错误“main loop'builtin\u function\u或\u method'object not iterable”:

我已经找到了答案,但是找不到我问题的答案

我已经检查了打字错误,但找不到任何错误。请帮帮我

import urllib2
import time
import datetime

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

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=5d/csv'
        saveFileLine = stock+'.txt'

        try:
            readExistingData = open(saveFileLine,'r').read()
            splitExisting = readExistingData.split('\n')
            mostRecentLine = splitExisting[-2]
            lastUnix = mostRecentLine.split(',')[0]
        except:
            lastUnix = 0

        saveFile = open(saveFileLine,'a')
        sourceCode = urllib2.urlopen(urlToVisit).read()
        splitSource = sourceCode.split

        for eachLine in splitSource:
            splitLine = eachLine.split(',')
            if len(splitLine) ==6:
                if splitLine[0] > lastUnix:
                    if 'values' not in eachLine:
                        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(300)

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

for eachStock in stocksToPull:
    pullData(eachStock)

直接回答

在此代码中:

saveFile = open(saveFileLine,'a')
sourceCode = urllib2.urlopen(urlToVisit).read()
splitSource = sourceCode.split
sourceCode.split
更改为
sourceCode.split()


如果您想了解有关此错误的更多信息,请阅读以下内容:

调试时,最好删除try…Exception块,尤其是“expect Exception”块,该块非常通用,您将无法了解出错的原因

删除try…except块并再次运行这些代码时,您将获得如下错误信息:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-c4fe20f718cd> in <module>()
     43 
     44 for eachStock in stocksToPull:
---> 45     pullData(eachStock)

<ipython-input-5-c4fe20f718cd> in pullData(stock)
     23     splitSource = sourceCode.split
     24 
---> 25     for eachLine in splitSource:
     26         splitLine = eachLine.split(',')
     27         if len(splitLine) ==6:

TypeError: 'builtin_function_or_method' object is not iterable
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
43
44对于stocksToPull中的每个存货:
--->45 pullData(每个库存)
输入数据(库存)
23 splitSource=sourceCode.split
24
--->25对于splitSource中的每个hline:
26 splitLine=eachLine.split(',')
27如果len(分割线)=6:
TypeError:“内置函数”或“方法”对象不可编辑
错误消息
TypeError:“内置函数或方法”对象不可编辑
与第25行关联,这意味着
splitSource
是一个
内置函数或方法
,并且不可编辑


什么是
splitSource
?它是
sourceCode.split
。答案来了。您应该使用
()
调用一个方法,没有它,您将得到方法本身。方法
str.split
显然不可
iterable

您可能需要添加一个语言标签,以便它显示在适当的社区中-这样您会得到更多的关注。谢谢!这使它工作起来:splitSource=sourceCode.split('\n')很酷。如果你认为这个答复有帮助,请把它标记为答案好吗?