Python pandas read_csv on dynamic URL提供EmptyDataError:没有要从文件解析的列

Python pandas read_csv on dynamic URL提供EmptyDataError:没有要从文件解析的列,python,python-3.x,pandas,urllib3,pandas-datareader,Python,Python 3.x,Pandas,Urllib3,Pandas Datareader,我正在从“PythonforFinance”学习Python,使用的包已经过时了。请帮助我解决以下错误: 它显示EmptyDataError:没有要从文件中解析的列 import pandas as pd url1 = 'http://hopey.netfonds.no/posdump.php?' url2 = 'date=%s%s%s&paper=AAPL.O&csv_format=csv' url = url1 + url2 year = '2017' month = '1

我正在从“PythonforFinance”学习Python,使用的包已经过时了。请帮助我解决以下错误: 它显示EmptyDataError:没有要从文件中解析的列

import pandas as pd
url1 = 'http://hopey.netfonds.no/posdump.php?'
url2 = 'date=%s%s%s&paper=AAPL.O&csv_format=csv'
url = url1 + url2

year = '2017'
month = '11'
days = ['9']

AAPL = pd.DataFrame()
for day in days:
    AAPL = AAPL.append(pd.read_csv(url % (year, month, day),
                                   index_col=0, header=0, parse_dates=True))

AAPL.columns = ['bid', 'bdepth', 'bdeptht','offer', 'odepth', 'odeptht']
错误:

EmptyDataError: No columns to parse from file

此错误是由熊猫问题引起的

  • Pandas将发送GET请求以获取文件内容。但此url是一个动态脚本,不会直接打印内容
  • posdump.php
    脚本将发送HTTP响应,如下所示:
  • 这意味着内容将以名为
    filename tests.csv
    的附件发送

  • 要解决此问题,请向熊猫团队报告此问题

  • 对于解决方法,请使用
    请求
    模块以字符串形式获取内容,然后使用以下命令读入:


  • EmptyDataError
    应该给您一个提示-数据是空的。您是否尝试从生成的链接下载CSV文件?我知道我无法下载
        HTTP/1.1 200 OK
        Date: Tue, 22 May 2018 01:18:42 GMT
        Server: Apache/2.4.7 (Ubuntu)
        X-Powered-By: PHP/5.5.9-1ubuntu4.25
        Content-Disposition: attachment; filename=exams.csv
        Pragma: no-cache
        Expires: 0
        Content-Type: text/csv
    
        from io import StringIO
    
        import pandas as pd
        import requests
        url = 'https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv'
        s = requests.get(url).text    
        c = pd.read_csv(StringIO(s))