プリズム/スキーマ強制を使用すると、エラーメッセージの代わりに強制変換が失敗したときにデフォルト値を持つことができます。エラーメッセージの代わりにプリズム/スキーマ強制のデフォルト値
私は空白(nil)またはs/Intの値を持つcsvファイルに値を持っています。以下のコードで、現時点では私は空白のためにこれを取得:
#schema.utils.ErrorContainer{:error (not (integer? nil))}
コード:
(def answers (slurp "excel/answers.csv"))
(def answers-field-schemas [s/Int s/Int s/Str s/Str s/Str s/Int s/Str s/Int s/Str s/Int s/Str s/Int s/Str s/Int s/Str])
(def answers-field-coercers
(mapv coerce/coercer
answers-field-schemas
(repeat coerce/string-coercion-matcher)))
(defn answers-coerce-fields [fields]
(mapv #(%1 %2) answers-field-coercers fields))
(def answers->data (map answers-coerce-fields (csv/parse-csv answers :end-of-line "\r")))