【发布时间】:2021-05-12 11:36:40
【问题描述】:
我一直在尝试使用来自服务器主机 URL 的请求库下载压缩的 csv。
当我从同一服务器下载一个不需要压缩的较小文件时,它在 CSV 中读取没有问题,但是使用这个我返回编码错误。
我尝试了多种类型的编码,读取为 pandas csv,读取为 zip 文件并打开(此时我收到文件不是 zip 文件的错误)。
我还尝试使用此处建议的 zipfile 库:Reading csv zipped files in python
并且还尝试在read_csv 中设置编码和压缩。
适用于非压缩服务器文件的代码如下:
response = requests.get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify = False)
dfs = pd.read_csv(response.raw)
但在用于此文件时返回'utf-8' codec can't decode byte 0xfd in position 0: invalid start byte。
我也试过了:
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)
返回一个 seek 属性错误。
【问题讨论】:
标签: python pandas csv python-requests