首页 > 解决方案 > 使用 pandas 读取在线数据时出现 HTTP 错误 413

问题描述

我正在使用 pandasread_csv下载文件并将其读取到数据帧中。

import pandas as pd
df = pd.read_csv('https://some-monitor.com/rest/data', sep=';', thousands='.', decimal=',')

在本地,脚本工作正常,数据被读取到数据帧。但是,当我ssh进入远程服务器并在那里运行脚本时,我收到以下错误:

  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 678, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 424, in _read
    filepath_or_buffer, encoding, compression)
  File "/usr/lib/python3/dist-packages/pandas/io/common.py", line 195, in get_filepath_or_buffer
    req = _urlopen(filepath_or_buffer)
  File "/usr/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 413:

为什么会出现这种情况?为什么脚本可以在本地运行,但不能在服务器上运行?服务器和我的本地操作系统都相同:Ubuntu。

标签: python-3.xpandasurllib

解决方案


感谢@DeadSec 的建议,该脚本现在也可以在服务器上正常运行。我使用pretty-downloader首先下载文件,然后将其加载到 pandas 中。

from pretty_downloader import download
download('https://some-monitor.com/rest/data', file_name='my_file.csv')

import pandas as pd
df = pd.read_csv('my_file.csv', sep=';', thousands='.', decimal=',')

推荐阅读