0

我看到了这个 matplotlib 示例

我想将它用于印度股票。现在 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. 我究竟做错了什么?

4

1 回答 1

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'
于 2013-06-03T03:32:59.057 回答