将空白条目修改为Null

时间:2014-11-25 07:35:00

标签: python csv psycopg2

我正在尝试循环csv中的项目以及数据集中为空白的任何内容,将其设置为“None”或“Null”。我使用的模块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 个答案:

答案 0 :(得分:0)

更新for循环内的项目时,它对来自的列表没有任何影响。您没有修改列表,而是修改本地" copy"一件物品。 您可以使用列表推导替换整个内部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循环中每行进行数据处理。