当前位置: 首页 > 面试题库 >

一元+的错误操作数类型:'str'

朱乐逸
2023-03-14
问题内容

我无法弄清楚使用Python 2.7编写的代码存在的问题。我正在将引用转换为ints,但是我不断收到类型异常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'if int(splitLine[0]) > int(lastUnix):即使被比较的两个值在测试时都打印为整数。谁能给我一些反馈?谢谢!

这是异常响应:

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'`

问题答案:

您说这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这样的字符串,而她反对。



 类似资料:
  • 为什么是否返回浮点值?我应该在这里做什么?

  • 问题内容: 为什么返回浮点数?我在这里应该做什么? 问题答案: 我认为有s值,所以需要指定参数:

  • 我在使用groupby和函数删除异常值时遇到一个TypeError: 我已经用:过滤了列中的NaN行,我应该怎么做才能使它正确返回?提前谢谢你的帮助。 这就是我通过,似乎很正常。 相关参考资料: 一元的操作数类型错误 一元的操作数类型错误

  • 嗨,我正在使用Laravel和Redis。当我尝试通过get方法访问密钥时,会出现以下错误“对持有错误类型值的密钥进行WRONGTYPE操作” 我使用以下代码来访问键值- 我使用此代码从redis获取数据

  • 二进制运算符"*"的操作数类型错误 我在编译过程中得到的错误是二进制运算符的坏操作数类型,表示:第一种类型:int第二种类型:int[],我只能使用这个逻辑。以下是我节目的一部分

  • 使用在Play Framework(Java版本)应用程序中调用SOAP服务的ws-security部分时,为了支持这些构件,导致了这种混乱: 所使用的工件包括: 其中,是: 通过搜索此部分: (这意味着降级包),问题将得到解决,服务调用将成功工作。 现在我的问题是:错误在哪里?在JVM、WSS4J或游戏框架中? 播放框架版本:2.5.8 java版本“1.8.0_121” Java(TM)SE运