首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:基数为10的int()的文本无效:'da‘

ValueError:基数为10的int()的文本无效:'da‘
EN

Stack Overflow用户
提问于 2012-08-07 01:41:29
回答 2查看 2.8K关注 0票数 0

对于下面的代码,我总是得到相同的ValueError,我很难理解为什么会产生这个错误。据我所知,这个错误是当错误的值传递给函数时产生的,然而,我并不真正理解这个错误告诉我的是什么。我花了时间在网上和文档中搜索,但我无法理解我做错了什么。简单地说,为什么会生成这个错误?

我的代码:

代码语言:javascript
复制
import datetime
import ystockquote

def new_time(n):
    fmt = "%Y%m%d"
    end_date1 = datetime.datetime.strptime(n, fmt)
    sixty_day = datetime.timedelta(days=60)
    start_date  = end_date1 - sixty_day
    start_date1 = str(start_date)
    start_date2 = start_date1[:4] + start_date1[5:7] + start_date1[8:10]
    return start_date2

def average_atr():
    print "Enter your stock symbol: "
    symbol      = raw_input(" ")
    print "Enter the end date in (YYYYMMDD) format: "
    end_date    = raw_input(" ")
    start_date  = new_time(end_date)
    initial_list = ystockquote.get_historical_prices('symbol', 'start_date', 'end_date')

def start():
    average_atr()

start()

下面是ystockquote的相关代码:

代码语言:javascript
复制
def get_historical_prices(symbol, start_date, end_date):
    """
    Get historical prices for the given ticker symbol.
    Date format is 'YYYYMMDD'

    Returns a nested list.
    """
    url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \
          'd=%s&' % str(int(end_date[4:6]) - 1) + \
          'e=%s&' % str(int(end_date[6:8])) + \
          'f=%s&' % str(int(end_date[0:4])) + \
          'g=d&' + \
          'a=%s&' % str(int(start_date[4:6]) - 1) + \
          'b=%s&' % str(int(start_date[6:8])) + \
          'c=%s&' % str(int(start_date[0:4])) + \
          'ignore=.csv'
    days = urllib.urlopen(url).readlines()
    data = [day[:-2].split(',') for day in days]
    return data

请注意,上面的ystockquote代码并不是完整的代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-07 01:44:35

在function average_atr()中,更改以下行:

代码语言:javascript
复制
initial_list = ystockquote.get_historical_prices('symbol', 'start_date', 'end_date')

至:

代码语言:javascript
复制
initial_list = ystockquote.get_historical_prices(symbol, start_date, end_date)

在您当前的版本中,不是将变量传递给ystockquote.get_historical_prices(),而是传递带有变量名称的文字字符串。这会产生str(int(end_date[4:6]) - 1),其中变量end_date的值为'end_date',而'end_date'[4:6]的值为'da'

票数 6
EN

Stack Overflow用户

发布于 2012-08-07 01:46:41

您正在将字符串“start_date”和“end_date”发送到函数get_historical_prices。该函数似乎希望传入实际的字符串日期值。只需删除此行中参数两边的引号:

代码语言:javascript
复制
initial_list = ystockquote.get_historical_prices('symbol', 'start_date', 'end_date')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11833207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档