diff --git a/saqc/core/reader.py b/saqc/core/reader.py index 4a3a4fb3a5d6ff9ba3554d582031521dab695916..5dba2d2d987d183e26e140f61775657fc61a4e60 100644 --- a/saqc/core/reader.py +++ b/saqc/core/reader.py @@ -60,11 +60,14 @@ def _castRow(row: Dict[str, str]) -> Dict[str, Any]: cast values to the data type given in 'types' """ out = {} - for k, v in row.items(): + keys = pd.Index(row.keys()) + for k, func in CONFIG_TYPES.items(): + key = keys[keys.str.match(k)][0] + value = row[key] try: - out[k] = CONFIG_TYPES[k](v) + out[key] = func(value) except: - _raise(row, ValueError, f"invalid value: v") + _raise(row, ValueError, f"invalid value: '{value}'") return out