2010-02-28 98 views
0

試圖讀取頭與一個CSV文件:蟒蛇CSV標題錯誤

reader = csv.DictReader(open(PATH_FILE),skipinitialspace=True) 
headers = reader.fieldnames 

for header in sorted(set(headers)): 

它的工作發展服務器上,投在生產這個錯誤

'NoneType' object is not iterable 

調試可以顯示頁眉有而沒有價值csv文件中有標題。

headers:None 

回答

2

csvreader.fieldnames documentation

如果創建對象時沒有作爲參數傳遞,這個屬性是在第一次訪問初始化或者當第一個記錄是從文件中讀取

因此,請嘗試讀取文件的第一行,然後reader.fieldnames應包含您需要的數據。也許像添加reader.next()

reader = csv.DictReader(open(PATH_FILE),skipinitialspace=True) 
reader.next() 
headers = reader.fieldnames 

的文件也說:

改變在2.6版本。

因此,這種行爲差異可能是由於您的兩個系統之間的Python版本不同。

1

也許您在開發服務器和生產環境中使用不同的Python版本?在Python 2.5中,DictReader實例的fieldnames屬性爲None,直到實例用於獲取至少一行。