小编典典

熊猫从网址读取_csv

all

我正在尝试使用 Python 3.x 从给定的 URL 读取 csv 文件:

import pandas as pd
import requests

url = "https://github.com/cs109/2014_data/blob/master/countries.csv"
s = requests.get(url).content
c = pd.read_csv(s)

我有以下错误

“预期的文件路径名或类似文件的对象,得到 类型”

我怎样才能解决这个问题?我正在使用 Python 3.4


阅读 60

收藏
2022-06-24

共1个答案

小编典典

对于 较旧的 pandas 版本 ,或者 如果您需要身份验证 ,或者出于任何其他 HTTP 容错原因:

使用pandas.read_csv类似文件的对象作为第一个参数。

  • 如果要从字符串中读取 csv,可以使用io.StringIO.

  • 对于 URL https://github.com/cs109/2014_data/blob/master/countries.csv,您会得到 html 响应,而不是 原始 csv;您应该使用 github 页面中链接给出的 urlRaw来获取原始 csv 响应,即https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv

例子:

import pandas as pd
import io
import requests
url="https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv"
s=requests.get(url).content
c=pd.read_csv(io.StringIO(s.decode('utf-8')))

笔记:

在 Python 2.x
中,字符串缓冲区对象是StringIO.StringIO

2022-06-24