我正在尝试循环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"
我无法弄清楚我在哪里出错了。任何意见是极大的赞赏。
答案 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循环中每行进行数据处理。