简体   繁体   English

主循环“ builtin_function_or_method”对象不可迭代

[英]main loop 'builtin_function_or_method' object is not iterable

I get this error "main loop 'builtin_function_or_method' object is not iterable" when I run the code below: 运行以下代码时,出现此错误“主循环'builtin_function_or_method'对象不可迭代”:

I have search stackoverflow, but cant find a answer to my question... 我有搜索stackoverflow,但找不到我的问题的答案...

I have checked for typos, but cant find any error. 我检查了错别字,但找不到任何错误。 Please help me! 请帮我!

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)

Direct Answer 直接回答

In the code here: 在这里的代码中:

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

change sourceCode.split to sourceCode.split() . sourceCode.split更改为sourceCode.split()


If you want to know more about this error, read below: 如果您想进一步了解此错误,请阅读以下内容:

When debugging, you'd better remove the try...except block, especially an "expect Exception" block, which is so generic that you will get lost about what is going wrong. 调试时,最好删除try ... except块,尤其是“ expect Exception”块,该块是如此通用,以至于您会迷失方向。

When removed the try...except block and run these code again, you will get error info like this: 当删除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

The error message TypeError: 'builtin_function_or_method' object is not iterable is associated with line 25, which means splitSource is a builtin_function_or_method and is not iterable . 该错误消息TypeError: 'builtin_function_or_method' object is not iterable与线25,这意味着相关联splitSourcebuiltin_function_or_method并且不是iterable

What is splitSource ? 什么是splitSource It is sourceCode.split . 它是sourceCode.split Here comes the answer. 答案来了。 You should call a method by using () , without which you will get the method itself. 您应该使用()来调用方法,否则您将获得方法本身。 The method str.split is obviously not iterable ! 方法str.split显然不是iterable

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 'builtin_function_or_method' object 不可迭代,带有列表的 for 循环 - 'builtin_function_or_method' object is not iterable, for loop with list 'builtin_function_or_method' object 不可迭代 - 'builtin_function_or_method' object is not iterable 使用 os.walk 不可迭代 builtin_function_or_method&#39; 对象 - builtin_function_or_method' object is not iterable using os.walk 显示TypeError:&#39;builtin_function_or_method&#39;对象在Odoo中不可迭代 - showing TypeError: 'builtin_function_or_method' object is not iterable in Odoo Python&#39;builtin_function_or_method&#39;对象不是可迭代错误 - Python 'builtin_function_or_method' object is not iterable error python搜索中的&#39;builtin_function_or_method&#39;对象不可迭代&#39;错误? - 'builtin_function_or_method' object is not iterable' error in python search? 使用max()时获取“&#39;builtin_function_or_method&#39;对象不可迭代” - Getting “'builtin_function_or_method' object is not iterable” when using max() 发生异常:TypeError 'builtin_function_or_method' object is not iterable - Exception has occurred: TypeError 'builtin_function_or_method' object is not iterable python “类型错误:‘builtin_function_or_method’ object 不可迭代” - python "TypeError: 'builtin_function_or_method' object is not iterable" TypeError:“ builtin_function_or_method”不可迭代 - TypeError: 'builtin_function_or_method' is not iterable
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM