gpt4 book ai didi

python - DictReader 的类型错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:50 26 4
gpt4 key购买 nike

我正在使用 DictReader 和 DictWriter 处理一个 csv 文件。

我尝试根据找到的以下代码工作 here :

import csv

fieldnames = ['Node', 'ID', 'Test Description', 'file-name',
'module', 'view', 'path1','path2'] # defines order in output file

with open('testdata.txt', 'rb') as csvinput:
with open('testdata2.txt', 'wb') as csvoutput:
csvwriter = csv.DictWriter(csvoutput, fieldnames, delimiter=',')
csvwriter.writeheader()
nodecount = 0
for row in csv.DictReader(csvinput):
nodecount +=1
row['Node'] = 'node %s' % nodecount # add 'Node' entry to row data
csvwriter.writerow(row)

我正在使用 python 3.2,但出现以下错误:

  File "/usr/lib/python3.2/csv.py", line 153, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: 'str' does not support the buffer interface

我读到这个错误可能是 due to the fact that “如果您使用 Python3x,则字符串与 Python 2.x 的类型不同,您必须将其转换为字节(对其进行编码)。”

但是在这里,文件已经使用“b”参数打开(因此作为二进制文件)对吗?

最佳答案

您正在为 Python 3 中的 csv 模块使用 Python 2 示例。如您所料,作为 str/bytes 开关的一部分, 打开文件所需的模式csv 模块稍有改动。 (我承认差异可能令人头疼,但 Python 3 中的事情比 Python 2 中的事情更有意义,这是值得的。)

作为the documentation解释说,打开 csv 文件进行读/写所需的新习语是

with open('testdata.txt', newline='') as csvinput:
with open('testdata2.txt', 'w', newline='') as csvoutput:

关于python - DictReader 的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com