温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - reading gzipped csv file in python 3
csv gzip python

其他 - 在python 3中读取gzip压缩的csv文件

发布于 2020-05-01 12:18:07

我在使用gzipcsv从gzip压缩的csv文件中读取时遇到问题这是我得到的:

import gzip
import csv
import json

f = gzip.open(filename)
csvobj = csv.reader(f,delimiter = ',',quotechar="'")
for line in csvobj:
            ts = line[0]
            data_json = json.loads(line[1])

但这会引发异常:

 File "C:\Users\yaronol\workspace\raw_data_from_s3\s3_data_parser.py", line 64, in download_from_S3
    self.parse_dump_file(filename)
  File "C:\Users\yaronol\workspace\raw_data_from_s3\s3_data_parser.py", line 30, in parse_dump_file
    for line in csvobj:
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

压缩文件并使用csv打开该文件即可。我也尝试解码文件文本以将字节转换为str ...

我在这里想念什么?

查看更多

提问者
WeaselFox
被浏览
21
pacholik 2015-05-19 19:45

的默认模式gzip.openrb,如果您希望使用strs,则必须额外指定它:

f = gzip.open(filename, mode="rt")

OT:在with块中编写I / O操作是一个好习惯:

with gzip.open(filename, mode="rt") as f: