파이썬의 csv
모듈 (특히 DictReader
클래스)을 사용하여 CSV 파일을 구문 분석하려고합니다. 비어 있거나 누락 된 필드를 감지하고 오류를 던질 Pythonic 방법이 있습니까?Python 방식으로 CSV 파일에서 누락 된 필드를 어떻게 검색합니까?
이 다음은 샘플 다음 헤더를 사용하여 파일의 : VALUE
foo,bar,baz
yes,no
x,y,z
분석 NAME, LABEL, 나는 그것이 VALUE 필드를 누락하기 때문에 오류가 발생하는 두 번째 줄을 싶습니다.
import csv
HEADERS = ["name", "label", "value" ]
fileH = open('configFile')
reader = csv.DictReader(fileH, HEADERS)
for row in reader:
if row["name"] is None or row["name"] == "":
# raise Error
if row["label"] is None or row["label"] == "":
# raise Error
...
fileH.close()
는 검사의 청소 방법은 다음과 같습니다
는 (그들은 간결 만 존재하는 것 ... 하드 코딩 된 문자열을 무시) 나는이 접근하고있어 방법을 보여줍니다 코드입니다 CSV 파일의 필드가
if
문장을 포함하고 있습니까? 필드를 더 추가해야하는 경우 더 많은 조건문이 필요하며 가능한 경우이를 피하고 싶습니다.
달콤한 Pythonic 방법! –
이 방법은 csv.DictReader의 동작과 거의 호환되지 않습니다. HEADERS에서 명시 적으로 언급되지 않았기 때문에 DictReader에 의해 일부가 삭제 될 수 있지만 행의 모든 키를 통해 반복됩니다. http://docs.python.org/library/csv.html#csv.DictReader – Triptych
@Triptych : 이러한 추가 키는 최대 하나 (값은 생성자에 대한 restkey로 전달됨)입니다. 나는 그 문제를 보지 못했다. – balpha