Я читаю файл CSV, используя Dictreader (). Функция возвращает словарь, где элементы заголовка являются ключами, а клетки являются значениями. Довольно круто.
Но я пытаюсь объяснить ряды, где данные могут быть не то, что я ожидаю, что это будет. В этом случае (я ловлю исключение ValueError), я хотел бы, чтобы строки «подозревают», чтобы попасть в отдельный словарь для ручной обработки.
Мой вопрос в том, что мой первый словарь (объект, возвращаемый Dictreader), имеет все его ключи правильно, как я могу скопировать только клавиши в мой второй словарь, тот, который я Хотите быть просто словарем подозреваемых рядов, чтобы быть вручную обрабатываться?
Я играл с Dict.Fromkeys () И такое на некоторое время, и я просто никуда не получаю. Halp!
РЕДАКТИРОВАНИЕ: вставка некоторых из моего ошибочного кода. Собираюсь пойти спрятаться в стыде моего кода. Не суди меня! ; -)
unsure_rows = dict.fromkeys(dict(csv_reader).keys(), [])
for row in csv_reader:
# if row['Start Time'] != 'None':
try:
if before_date > strptime(row['Start Time'], '%Y-%m-%d %H:%M:%S') > after_date:
continue
except ValueError:
unsure_rows += row
ValueError: Словарь обновления последовательности элемента # 0 имеет длину 13; 2 требуется