从url中读取csv

时间:2015-04-07 08:04:39

标签: python pandas

如果只是粘贴到浏览器中,我有以下csv网址正常工作:

http://www.google.com/finance/historical?q=JSE%3AMTN&startdate=Nov 1, 2011&enddate=Nov 30, 2011&output=csv

但是我似乎无法使用pandas下载csv。我收到错误:

urllib.error.HTTPERROR: HTTP ERROR 400: Bad Request

代码:

import pandas as pd

def main():

    url = 'http://www.google.com/finance/historical?q=JSE%3AMTN&startdate=Nov 1, 2011&enddate=Nov 30, 2011&output=csv'

    df = pd.read_csv(url)
    print(df)

请有人指出我正确的方向。

1 个答案:

答案 0 :(得分:3)

该URL未正确编码。您的浏览器会自动将空格' '替换为'%20',来自python标准库的基础urllib请求不会这样做。用'%20'替换所有空格,你没事。

另外,如果你使用pandas 0.16,你可以跳过所有这些,因为现在已经内置了对Google财经数据的支持(参见http://pandas.pydata.org/pandas-docs/stable/remote_data.html#remote-data-google):

import pandas.io.data as web

df = web.DataReader("F", 'JSE:MTN', "2011-11-01", "2011-11-30")