2014-01-25 7 views
0

Когда я загружаю рассол, используя pickle.load («foo»), как я могу узнать, поврежден ли что-то, что прочитано? Например, если я собираю большой список, используя pickle.dump и убиваю мой процесс python до его завершения, каковы будут последствия и как с ними бороться?Об ошибках рассола

+0

Возможно, что одна из нескольких ошибок (http://docs.python.org/2/library/pickle.html#pickle.UnpicklingError) может быть выбрана в случае сбоя unpickling. Вы можете поймать исключение и обработать его. – z33m

ответ

1

Если отказ по какой-либо причине по какой-то причине может быть выброшен один из нескольких Error. Вы можете поймать исключение и обработать дело соответствующим образом.

Однако можно утверждать, что неправильно обработанные или подделанные данные могут случайно быть расклеены должным образом. Результатом является неверный результат. Более безопасный способ заключается в том, чтобы добавить контрольную сумму к вашему маринуру и проверить контрольную сумму во время рассыпания. Check this answer for an example

0

Я только что испортил маринованный файл. Он сделал ошибку. Предположительно, если файл не выдает ошибку, это либо файл, который вы мариновали, либо его так тщательно подделали, что он обманывает модуль рассола. В таком случае, я думаю, вы очень потоплены.

Смежные вопросы