gpt4 book ai didi

python - 在 python 中使用 DictWriter/Reader 和 csv 模块

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:36 25 4
gpt4 key购买 nike

我想解析一个 csv 文件,在 Field3 中查找没有任何“/”的单元格,并将这些单元格复制到 fieldoutput 行的 output.csv 文件中。

我尝试了以下代码,但收到此错误:

Traceback (most recent call last):
File "<string>", line 13, in <module>
File "C:\Python27\ArcGIS10.1\Lib\csv.py", line 148, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "C:\Python27\ArcGIS10.1\Lib\csv.py", line 144, in _dict_to_list
", ".join(wrong_fields))

ValueError: dict contains fields not in fieldnames: Field1, Field2, Field3, Field4

这是我的代码:

import csv

f = open("C:\My\Path\file.csv", "r")
reader = csv.DictReader(f, delimiter=';')
writer = open("C:\My\Path\output.csv",'wb')
output = csv.DictWriter(writer, 'fieldoutput', delimiter=';')

print output

for row in reader:
if '/' not in row['Field3'] :
#print row['Field3']
output.writerow(row)

感谢您的帮助!

最佳答案

我认为您没有正确指定第二个 DictWriter 参数。由于您正在写入的行是字典,因此 DictWriter 需要知道如何对字段进行排序:

The fieldnames parameter is a sequence of keys that identify the order in which values in the dictionary passed to the writerow() method are written to the csvfile.

尝试从此更改您的 DictWriter 初始化:

output = csv.DictWriter(writer, 'fieldoutput', delimiter=';')

对此:

output = csv.DictWriter(writer, fieldnames=reader.fieldnames, delimiter=';')

关于python - 在 python 中使用 DictWriter/Reader 和 csv 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26759341/

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