当前位置: 首页 > 知识库问答 >
问题:

从服务器链接下载压缩的csv文件并读入pandas

方长卿
2023-03-14

我一直试图使用请求库从服务器主机URL下载压缩csv。

我还尝试使用这里建议的zipfile库:在python中读取csv压缩文件

并尝试在read_csv中设置编码和压缩。

下面是用于非zipped服务器文件的代码:

response = requests.get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify = False)
dfs = pd.read_csv(response.raw)
request = get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify=False)
zip_file = ZipFile(BytesIO(request.content))
files = zip_file.namelist()
with gzip.open(files[0], 'rb') as csvfile:
    csvreader = csv.reader(csvfile)
    for row in csvreader:
        print(row)

共有1个答案

顾喜
2023-03-14

以下是一种方法:

import pandas as pd
import requests
from requests.auth import HTTPBasicAuth
from zipfile import ZipFile
import io

# Example dataset
url = 'https://www.stats.govt.nz/assets/Uploads/Retail-trade-survey/Retail-trade-survey-September-2020-quarter/Download-data/retail-trade-survey-september-2020-quarter-csv.zip'

response = requests.get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify=False)
with ZipFile(io.BytesIO(response.content)) as myzip:
    with myzip.open(myzip.namelist()[0]) as myfile:
        df = pd.read_csv(myfile)

print(df)

如果要读取多csv压缩文件中的特定csv,请将myzip.namelist()[0]替换为要读取的文件。如果不知道其名称,可以使用print(ZipFile(io.bytesio(response.content)))检查zip文件内容

 类似资料:
  • 我正在尝试使用改造从服务器下载文件。使用HttpLoggingInterceptor我尝试记录正在发生的事情。我可以找到文件名。但是响应正文是空的。 我是使用改造的新手。有人能指出我犯错的正确方向吗? 改进客户端界面: } Java呼叫: 日志中的响应:

  • 问题内容: 我想使用urllib下载文件,并在保存之前对文件进行解压缩。 这就是我现在所拥有的: 最终将写入空文件。我该如何实现自己的追求? 更新的答案: 问题答案: 在写完之后,但要传递给之前,您需要寻找到开始的地方。否则它将被模块从头读取,并显示为空文件。见下文:

  • 我正在尝试将压缩的csv文件(.bz2)读取为数据帧。我的代码如下 当我在IDE中尝试时,这是可行的。我可以读取数据并对其进行处理,但当我尝试使用maven构建数据并在命令行上运行它时,会出现以下错误 我不确定我是否在这里错过了什么。读取csv文件是否有一些依赖项?根据留档,Spark 2. x. x内置了对此的支持。

  • 问题内容: 我有一个URL,用于保存我的工作中的一些项目,它们大部分是MDB文件,但也有一些JPG和PDF。 我需要做的是列出该目录中的每个文件(已完成)并为用户提供下载它的选项。 使用PHP如何实现? 问题答案: 要读取目录内容,可以使用readdir()并使用脚本(在我的示例中)来下载文件 在其中,您可以强制浏览器发送下载数据,并使用basename()来确保客户端不会传递其他文件名,例如

  • 我正试图从压缩的csv文件中获取数据。有没有一种方法可以做到这一点,而不解压整个文件?如果没有,我如何解压文件并有效地读取它们?

  • 能读一本书吗。仅包含来自URL的文件? 例如https://www.federalreserve.gov/econres/files/scfp2016s.zip包含一个文件:不适用于它: ValueError:给定Stata文件的版本不是104、105、108、111(Stata 7SE)、113(Stata 8/9)、114(Stata 10/11)、115(Stata 12)、117(Stat