1

我正在尝试获取 yahoo Finance 的股票报价并将其打印在控制台上。但是在设置开始日期和结束日期时遇到了麻烦。这是我拥有的代码:

def get_quotes(ticker,start_date,end_date):
list = []

quote = 'http://ichart.yahoo.com/table.csv?s={}&a=2&b=1&c=2011&d=10&e=30&f=2012&g=d'.format(ticker,start_date,end_date)
response = urllib.request.urlopen(quote) 
data = response.read()
string_data = data.decode(encoding='utf-8')
lines = string_data.splitlines()
for x in lines:
    data = [y for y in x.split(',')]
    list.append(data)
return list

对于报价部分..您如何输入用户输入的开始日期和结束日期?您可以将 '?s=' 替换为 {} 以进行格式化,但您将如何对日期执行相同操作?

4

2 回答 2

1

你到底想做什么?

你想替换2&b=1&c=2011&d为开始日期之类的29&b=10&c=2013&d吗?

更新代码:

输入 start_date 和 end_date 的粗略方法如下:

start_date = raw_input("Enter start date in form of D/M/Y: ").split("/")
end_date = raw_input("Enter end date in form of D/M/Y: ").split("/")
qoute = 'http://ichart.yahoo.com/table.csv?s={}&a=' + start_date[0] + '&b=' + start_date[1] + "&c=" + start_date[2] + '&d='+end_date[0] + '&e=' + end_date[1] + '&f=' + end_date[2] + '&g=d'
于 2013-10-28T22:34:20.623 回答
1

要从用户那里获取日期,请使用raw_input(),即

startDate = raw_input("Please enter the start date:")

对于格式,如果用户输入一个“不错”的日期,您可以将其转换为日期对象,并使用strftime获取您想要的格式

于 2013-10-28T22:50:19.260 回答