我想将它用于印度股票。现在matplotib.finance定义:
def fetch_historical_yahoo(ticker, date1, date2, cachename=None,dividends=False):
.....
urlFmt = 'http://table.finance.yahoo.com/table.csv?a=%d&b=%d&c=%d&d=%d&e=%d&f=%d&s=%s& y=0&g=%s&ignore=.csv'
url = urlFmt % (d1[0], d1[1], d1[2],d2[0], d2[1], d2[2], ticker, g)
.....
然后
urlopen(url)
但从雅虎印度获取数据的格式略有不同。所以我去了in.finance.yahoo.com并获得了Reliance Industries历史价格的链接:
http://ichart.finance.yahoo.com/table.csv?s=RELIANCE.NS&a=03&b=1&c=2012&d=02&e=31&f=2013&g=d&ignore=.csv
但现在我把它放到一个函数indian.py
中:
urlFmt='http://ichart.finance.yahoo.com/table.csv?s=%s&d=%d&e=%d&f=%d&g=d&a=%d&b=%d&c=%d&ignore=.csv'
当我运行时,我得到一个HTTP 404 error
。我做错了什么?
答案 0 :(得分:0)
我怀疑字符串格式的变量顺序不再匹配。将以下urlFmt
与原始字符串格式表达式一起使用:
urlFmt = 'http://ichart.finance.yahoo.com/table.csv?a=%d&b=%d&c=%d&d=%d&e=%d&f=%d&s=%s&g=%s&ignore=.csv'
url = urlFmt % (d1[0], d1[1], d1[2], d2[0], d2[1], d2[2], ticker, g)
当变量设置如下时,这将产生url
http://ichart.finance.yahoo.com/table.csv?s=RELIANCE.NS&a=3&b=1&c=2012&d=2&e=31&f=2013&g=d&ignore=.csv:
d1 = [3, 1, 2012]
d2 = [2, 31, 2013]
ticker = 'RELIANCE.NS'
g = 'd'