2014-11-25 2 views
1

csv의 항목을 반복하고 데이터 세트의 항목이 비어 있으면 "없음"또는 "Null"로 설정하려고합니다. 이미 가져온 모듈 csv와 psycopg2를 사용하고 있습니다.빈 항목을 Null로 수정

전체 목표는 csv에서 비어있는 항목을 읽고 Null로 설정하는 것입니다. 항목이 있는지 확인하기 위해 item = "None"을 사용하고 있습니다. 거기에서 나는 그것을 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

for 루프 내에서 항목을 업데이트해도 해당 목록의 영향을받지 않습니다. 목록을 수정하는 것이 아니라 한 항목의 로컬 "사본"을 수정하는 것입니다. 당신은 지능형리스트와 루프 전체 내부를 대체 할 수있다 :이 new_pet에있는 모든 항목을 취할 것

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

, 그리고 그들에 value.capitalize() if value else None를 실행합니다. 의미 : valueFalse (빈 문자열의 경우)으로 평가되면 대문자로 표시된 값을 반환하고, 그렇지 않으면 None을 반환합니다.

바깥 쪽 for 루프 내부에서 한 줄에 데이터 처리를 수행해야합니다.

관련 문제