2016-09-22 82 views
0

大家好,我一直在收集这个错误,同时使一个小程序来排序大的CSV文件,下面是我的代码和错误,我做错了什么?Python CSV错误

if selection: 
     for stuff in stuffs: 

      try: 
       textFile = open("output.txt",'w') 
       mycsv = csv.reader(open(stuff)) 
       d_reader = csv.DictReader(mycsv) 
       headers = d_reader.fieldnames <-- Error happens here 
       if selection in headers: 
        placeInList = headers.index(selection) 

        #placeInList = selection.index(selection) 
        for selection in tqdm(mycsv, desc='Extracting column values...', leave = True): 
         textFile.write(str(selection[int(placeInList)])+'\n') 
        print 'Done!' 
        textFile.close() 
        sys.exit() 
      except IOError: 
       print 'No CSV file present in directory' 
       sys.exit() 
    else: 
     sys.exit() 

和错误:的

Traceback (most recent call last): 
File "postcodeExtractor.py", line 27, in <module> headers = d_reader.fieldnames 
File "C:\Python27\lib\csv.py", line 90, in fieldnames self._fieldnames = self.reader.next() 
TypeError: expected string or Unicode object, list found 
+1

你能告诉我们错误日志吗? – harshil9968

+0

什么行显示此错误? –

+0

回溯(最近通话最后一个): 文件 “postcodeExtractor.py”,第27行,在 头= d_reader.fieldnames 文件 “C:\ Python27 \ LIB \ csv.py”,行90,在字段名称 自我._fieldnames = self.reader.next() 类型错误:预期字符串或Unicode对象列表中找到 – nagrom97

回答

0

代替

mycsv = csv.reader(open(stuff)) 
d_reader = csv.DictReader(mycsv) 

你想

d_reader = csv.DictReader(open(stuff)) 

第一行的问题。

+0

这没有奏效:( – nagrom97

+0

遗憾就是'stuff'文件路径? – tipanverella