2014-11-25 56 views
1

我試圖循環顯示csv中的項目以及空白數據集中的任何內容,將其設置爲「無」或「空」。我正在使用已經導入的模塊csv和psycopg2。將空白條目修改爲空

這裏的總體目標是讀取csv中空白的任何項目並將它們設置爲Null。我使用 item = "None"只是爲了檢查項目是否被找到。從那裏我想我可以將它設置爲無。

樣本數據:

name, age, breed_name, species_name, shelter_name, adopted Titchy, 12, mixed, cat, BCSPCA, 1 Ginger, 1, labradoodle, dog,,1

示例代碼:

import psycopg2 
import csv 
for new_pet in dictReader: 
    for item in new_pet: 
     item = item.capitalize() 
     if item is '': 
      print item # Used to check/debugging 
      item = "None" 

我想不通我要去的地方錯在這裏。任何意見是極大的讚賞。

+1

切換最後兩行。 – 2014-11-25 07:46:10

回答

0

當您更新for循環中的項目時,它對它來自的列表沒有任何影響。您不修改列表,而是修改一個項目的本地「副本」。 您可以用列表解析更換整個內部的for循環:

import csv 
for new_pet in dictReader: 
    new_pet = [value.capitalize() if value else None for value in new_pet] 
    print new_pet 

這將在new_pet的所有項目,並運行他們value.capitalize() if value else None。 表示:如果value的計算結果爲False(空字符串),則返回大寫的值,如果不是,則返回None

請記住在外部for循環中每行執行一次數據處理。