正在转换。csv.gz版Python2.7中的.csv

2024-09-24 00:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经阅读了文档和其他地方的一些附加帖子,但我不太明白这个概念:

当您调用csvFilename = gzip.open(filename, 'rb'),然后调用reader = csv.reader(open(csvFilename)),这是不是一个有效的csv文件?在

我试图解决下面概述的问题,在第41行和第7行(下面突出显示)出现coercing to Unicode: need string or buffer, GzipFile found错误,这使我相信gzip.open以及csv.reader不要像我以前想的那样工作。在

我要解决的问题

我正在尝试将results.csv.gz转换为results.csv,这样我就可以将results.csv转换成一个python字典,然后将它与另一个python字典结合起来。在

文件1:

alertFile = payload.get('results_file')
alertDataCSV = rh.dataToDict(alertFile) # LINE 41
alertDataTotal = rh.mergeTwoDicts(splunkParams, alertDataCSV)

调用文件2:

^{pr2}$

*编辑:也请原谅我用Python命名的非PEP风格


Tags: 文件csv文档概念字典地方openresults
1条回答
网友
1楼 · 发布于 2024-09-24 00:31:51

gzip.open返回一个类似文件的对象(与普通的open返回的内容相同),而不是解压缩文件的名称。只需将结果直接传递给csv.reader,它就可以工作了(csv.reader将接收解压缩的行)。csv确实需要文本,因此在python3上,您需要将其作为文本打开(在python2上'rb'可以,模块不处理编码,但是{}模块也不处理编码)。只需更改:

csvFilename = gzip.open(filename, 'rb')
reader = csv.reader(open(csvFilename))

收件人:

^{pr2}$

相关问题 更多 >