2014-11-25 52 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循环中每行执行一次数据处理。