在python和strip/n中导入以制表符分隔的csv,并从描述字段导入
我已经在python中尝试了几天了,我已经让它正常工作了,但是我被最后一个错误卡住了: 文件“C:\Python34\lib\csv.py”,第149行,在目录列表中 +“,”.join([repr(x)在错误的_字段中表示x])) ValueError:dict包含字段名称中不包含的字段: 以下是我的代码:在python和strip/n中导入以制表符分隔的csv,并从描述字段导入,python,export,import,csv,Python,Export,Import,Csv,我已经在python中尝试了几天了,我已经让它正常工作了,但是我被最后一个错误卡住了: 文件“C:\Python34\lib\csv.py”,第149行,在目录列表中 +“,”.join([repr(x)在错误的_字段中表示x])) ValueError:dict包含字段名称中不包含的字段: 以下是我的代码: import csv import sys fin = 'csvTest.txt' fout = open('test2.csv','wb') csv_file = csv.DictRe
import csv
import sys
fin = 'csvTest.txt'
fout = open('test2.csv','wb')
csv_file = csv.DictReader(open(fin, 'r'), delimiter='\t', quotechar='"')
fieldnames = ['fName', 'lName', 'addr1', 'city', 'state', 'zip', 'terms', 'apptDate', 'product', 'description', 'quantity', 'price', 'total', 'taxAmt', 'invoiceNum']
csvwriter = csv.DictWriter(fout, delimiter='\t', fieldnames=fieldnames)
csvwriter.writeheader()
for row in csv_file:
row = row['fName'], row['lName'], row['addr1'], row['city'], row['state'], row['zip'], row['terms'], row['apptDate'], row['product'],
row['description'].replace('/n','').replace(',',''), row['quantity'], row['price'], row['total'], row['taxAmt'], row['invoiceNum']
print(row)
csvwriter.writerow(row)
fout.close()
我只是尝试导入一个csv文件,去掉所有/n,然后从描述字段中,将它们写回以制表符分隔的csv。我已经尝试了一些方法来实现这一目标,但是我在确定正确的领域时遇到了困难。这是我第一次尝试使用python实现csv
有什么想法吗?您的长行赋值行将dictionary行对象转换为tuple对象。您看到的错误是csv库抱怨您没有向它传递dict对象。此外,压痕有点扭曲(但这可能是堆叠溢出)
这很有效!我刚刚开始这里我必须采取b标志从导入和导出文件,或者我得到了一个错误,打开它在文本模式。我很难将它粘贴到问题框中,所以我确信间距就是这样。再次感谢您这帮助我了解了我做错了什么。可能需要替换多个字符:
。替换('/n','')。替换('','','')…替换('\t','')
。就我而言,\t
是罪魁祸首。对于其他人,即使是\r
也可能相关。
import csv
import sys
with open('csvTest.txt', 'rb') as file_in:
with open('test2.csv','wb') as file_out:
csv_reader = csv.DictReader(file_in, delimiter='\t', quotechar='"')
fieldnames = ['fName', 'lName', 'addr1', 'city', 'state', 'zip', 'terms',
'apptDate', 'product', 'description', 'quantity', 'price',
'total', 'taxAmt', 'invoiceNum']
csv_writer = csv.DictWriter(file_out, delimiter='\t', fieldnames=fieldnames)
csv_writer.writeheader()
for row in csv_reader:
row['description'] = row['description'].replace('/n','').replace(',','')
print(row)
csv_writer.writerow(row)