私はPythonのcsv
モジュール(具体的には、DictReader
クラス)を使用してCSVファイルを解析しようとしています。空のフィールドや見つからないフィールドを検出してエラーを投げるPythonの方法はありますか? NAME、LABEL解析するとき、それはVALUEフィールドを欠けているので、私はエラーをスローするために第2ラインを希望 Pythonの方法でCSVファイルの欠損フィールドを検出するにはどうすればよいですか?
foo,bar,baz
yes,no
x,y,z
、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
文が含まれていますか?フィールドを追加する必要がある場合は、さらに条件式が必要になります。可能であれば、これを避けたいと考えています。
甘いパイソン様! –
このメソッドは、csv.DictReaderの動作とほとんど互換性がありません。 HEADERSで明示的に言及されていないため、DictReaderによって破棄されるものもありますが、行のすべてのキーをループします。その他の情報:http://docs.python.org/library/csv.html#csv.DictReader – Triptych
@Triptych:このような追加キーは最大で1つあります(値はコンストラクタにrestkeyとして渡されます)。私はそれに問題はないと思う。 – balpha